Android手机游戏开发知识点总结(2)
paint.setColor(Color.GREEN);//设置画笔颜色 canvas.drawRect(0,0,320,480, paint);//绘制矩形 switch(count%4){ case 0:
paint.setColor(Color.BLUE); break; case 1:
paint.setColor(Color.YELLOW); break; case 2:
paint.setColor(Color.RED); break; case 3:
paint.setColor(Color.CYAN); break; default:
paint.setColor(Color.WHITE); break; }
canvas.drawCircle(130, 240, 500, paint);
surfaceHolder.unlockCanvasAndPost(canvas);//绘制后解锁,绘制后必须解锁才能显示 }
@Override//在Surface大小发生改变时激发
public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {
// TODO Auto-generated method stub }
@Override//在Surface创建时激发
public void surfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub new Thread(this).start(); }
@Override//在Surface销毁时调用
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub loop=false; }
public void run(){ while(loop){ try{
Thread.sleep(200);
synchronized (surfaceHolder) { Draw(); }
}catch(Exception e){ } } } }
第三部分 Paint类和Color类
在Android中通过graphic类来显示2D图形。graphic包括Canvas类(画布),Paint(画笔),Color(颜色),Bitmap(图像),2D几何图形等常用类。 package graphics; Paint类常用的一些方法: setAntiAlias 设置画笔的锯齿效果 setColor 设置画笔颜色
setARGB 设置画笔的a,r,g,b值。 setAlpha 设置透明度 setTextSize 设置字体大小 setStyle 设置画笔风格 空心或实心 setStrokeWidth设置空心的边框宽度 getColor 得到画笔的颜色 getAlpha 得到画笔的透明度 Color类中定义了一些颜色常量
Color.rgb方法将整型的颜色转换成Color类型。如Color.red方法可提取出红色的值。 /**
* 注意:在绘制时按从上到下的顺序绘制的 ,后面的如果和前面的重合的话会
将前面的覆盖掉 */
public class Graphics_Paint_Color extends View implements Runnable { public Paint paint; private String TAG=\你好\
public Graphics_Paint_Color(Context context) { super(context);
paint = new Paint();//创建画笔 new Thread(this).start();//开启线程 }
public void onDraw(Canvas canvas){ super.onDraw(canvas);
paint.setAntiAlias(true);//设置抗锯齿 paint.setColor(Color.RED);//设置画笔颜色
paint.setColor(Color.rgb(12, 234, 34));//设置画笔颜色 其中参数分别为red,green,blue三种颜色的值
Color.red(23);//提取颜色? Color.blue(234);
paint.setARGB(255, 23,234,49);//设置Paint的颜色和Alpha值
paint.setAlpha(200);//设置透明度
//paint.set(new PAINT());//设置另外一个Paint对象 paint.setTextSize(14);//设置字体的尺寸
//得到Paint的一些属性
Log.i(TAG, \的颜色\Log.i(TAG,\的Alpha\
paint.setStyle(Paint.Style.STROKE);//设置Paint为空心 paint.setStrokeWidth(5);//设置空心的外框宽度 canvas.drawRect(0,0,50,60, paint);//绘制空心矩形
paint.setStyle(Paint.Style.FILL);//设置Paint为实心 canvas.drawRect(60,70,120,140, paint);//绘制实心的矩形 }
public void run() {
while(!Thread.currentThread().isInterrupted()){ try{
Thread.sleep(200); }catch(Exception e){ e.printStackTrace();
Thread.currentThread().interrupt(); }
postInvalidate();//使用postInvalidate可以直接在线程中更新界面 } }
}在View或SurfaceView中绘制图形后,需要在Activtiy中通过setContentView()来让其显示出来
第四部分 Canvas类和ShadeDrawable类 Canvas方法:
Canvas() 创建画布,可以用setBitmap()方法设置绘制具体画布 Canvas(Bitmap bitmap) 以bitmap对象创建一个画布,则将内容都绘制在bitmap上,所以bitmap不得为null
Canvas(GL gl) 绘制3D效果时使用,与OpenGL drawColor 设置画布背景色 setBitmap 设置具体画布
clipRect 设置显示区域,即设置裁剪区 isOpaque 检测是否支持透明
rotate 旋转画布 在游戏中我们需要对精灵旋转,缩放或其它操作就可以通过旋转画布来实现,但在旋转画布时会旋转画布上所以对象,而我们只需要旋转其中一个。这个时候
我们就需要用save方法来锁定需要操作的对象,在操作后通过restore方法来解锁。(例子有此方法的运用) setViewport 设置画布中显示窗口 skew 设置便宜量
绘制几何图形的方法
drawRect 绘制矩形 drawCircle 绘制圆形 drawOval 绘制椭圆 drawLine 绘制直线 drawPoint 绘制点
public class CanvasView extends View implements Runnable{ private Paint paint ;
public ShapeDrawableView shapeDrawableView; public CanvasView(Context context) { super(context); paint = new Paint();
shapeDrawableView= new ShapeDrawableView(context);//得到对象 new Thread(this).start(); }
public void onDraw(Canvas canvas){ super.onDraw(canvas);
canvas.drawColor(Color.BLACK);//设置画布颜色 paint.setAntiAlias(true);//取消抗锯齿效果 //canvas.clipRect(20,20,80,80);//设置裁剪区域
canvas.save();//锁定画布 //canvas.rotate(45.0f);//旋转画布
paint.setColor(Color.RED);//设置颜色及绘制矩形 canvas.drawRect(new Rect(10,10,80,80), paint); canvas.restore();//解锁画布
paint.setStyle(Paint.Style.STROKE);{//设置为空心画笔 Rect rect = new Rect(); rect.left =85; rect.bottom=80; rect.right=150; rect.top = 10;
paint.setColor(Color.BLUE);
canvas.drawRect(rect, paint);//绘制矩形
…… 此处隐藏:2085字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




