博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android canvas 画布
阅读量:4217 次
发布时间:2019-05-26

本文共 1239 字,大约阅读时间需要 4 分钟。

      画布对于游戏界面的绘制以及自定义界面有着非常大的作用,可以实现书写文字,添加图片等操作,首先在xml布局文件中书写一个布局文件然后引入该view布局然后在view类中进行绘制即可。

1.书写xml文件

 <com.example.study2d.GameView 

        android:layout_width="200dp"
        android:layout_height="200dp"/>

2。定义视图类

public class GameView extends View {

private Paint paint;//声明一个画笔,通过该画笔实现文字,矢量图的绘制等
public GameView(Context context, AttributeSet attrs) {
super(context, attrs);
paint = new Paint(Paint.ANTI_ALIAS_FLAG);  //对画笔进行初始设置
// TODO Auto-generated constructor stub
}
@Override  
   protected void onDraw(Canvas canvas) {  
       paint.setColor(Color.YELLOW);  //设置画笔颜色
       canvas.drawRect(0, 0, getWidth(), getHeight(), paint);  //用上述声明的画笔进行绘制矩形
       paint.setColor(Color.BLUE);  
       paint.setTextSize(20);  
       String text = "Hello View";  
       canvas.drawText(text, 0, getHeight() / 2, paint);//通过上面的画笔来进写字
   }   

3.位图的绘制

首先我们需要先获取位图资源

 bitmap = ((BitmapDrawable)getResources().getDrawable(R.drawable.icon0)).getBitmap()通过该函数我们可以获得位图资源,对于位图资源的加载,加载图片一般要放在程序的最开始,以此来防止这种加载迟缓导致程序启动慢的问题。

获得图片之后我们就可以开始对其进行绘制了

canvas.drawBitmap(bitmap, 100, 100,null);,第一个参数是我们所获得的图片的名字,然后是图片的位置坐标,最后一个参数是画笔的名字,对于画笔来说,我们在绘制位图的时候一般是不需要画笔来进行绘制的。

canvas.scale(0.5f,0.5f,bitmap1.getWidth()/2,bitmap1.getHeight()/2);通过该函数我们可以实现对于获得的位图的大小的绘制,后两个参数就是获得位图的大小的绘制。

对于视图,我们可以通过方法invalidate来实现,通过在画布中设置上一下参数来实现根据相应的要求实现实时的更新。

转载地址:http://tytmi.baihongyu.com/

你可能感兴趣的文章
MySQL MyISAM引擎的读锁与写锁
查看>>
面向对象与面向过程的本质的区别
查看>>
Java语言有哪些特点?
查看>>
idea创建maven项目并关联gitee
查看>>
HashMap和Hashtable的区别
查看>>
JVM 对 Java 的原生锁做了哪些优化?
查看>>
JAVA实现简单的阻塞队列
查看>>
我的2020
查看>>
idea快捷键使用
查看>>
2.1MAC协议概述
查看>>
2.3 WSN的MAC协议
查看>>
图解后缀表达式的计算过程
查看>>
栈与队列的应用——计算表达式的值
查看>>
静态链表——sharing
查看>>
静态链表——sorting
查看>>
DFS——背包问题
查看>>
DFS——选数问题
查看>>
BFS——求矩阵中“块”的个数
查看>>
BFS——走迷宫的最小步数
查看>>
并查集——好朋友
查看>>