转载请注明出处王亟亟的大牛之路

Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0。
今天写的是关于2D图像的一些简单使用。

图形处理来说,我们最常用到的就是在一个View上画一些图片、形状或者自定义的文本内容,这里我们都是使用Canvas来实现的。你可以获取View中的Canvas对象,绘制一些自定义形状,然后调用View. invalidate方法让View重新刷新,然后绘制一个新的形状,这样达到2D动画效果。下面我们就主要来了解下Canvas的使用方法。

先上效果图。

public class MainActivity extends ActionBarActivity {LinearLayout imageViewLayout;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageViewLayout=(LinearLayout)findViewById(R.id.imageViewLayout);imageViewLayout.addView(new customview(this));}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();//noinspection SimplifiableIfStatementif (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}/*自定义view*/class customview extends View {/*画笔*/Paint paint;public customview(Context context) {super(context);//设置一个笔刷大小是3的黄色的画笔paint=new Paint();paint.setColor(Color.BLUE);paint.setStrokeJoin(Paint.Join.ROUND);paint.setStrokeCap(Paint.Cap.ROUND);paint.setStrokeWidth(3);}//在这里我们将测试canvas提供的绘制图形方法@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);}}
}

上面这段代码会让你的页面什么都没有因为在onDraw()方法里并没有给我们的自定义视图做任何绘画的操作,需要重写下onDraw()方法如下

 @Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);}

效果如下图:

         @Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);//绘制弧线区域RectF rect = new RectF(0, 0, 200, 200);canvas.drawArc(rect, //弧线所使用的矩形区域大小0,  //开始角度90, //扫过的角度false, //是否使用中心paint);  //效果图就不贴了,跟最上面黄色的图一样      }
         @Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);//四分之一圆canvas.drawArc(rect, //弧线所使用的矩形区域大小0,  //开始角度90, //扫过的角度true, //是否使用中心paint);}

效果如图

         @Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawColor(Color.BLUE);    //整个布局变成蓝色}

         @Overrideprotected void onDraw(Canvas canvas) {//定义一个矩形区域RectF oval = new RectF(0,0,200,300);//矩形区域内切椭圆canvas.drawOval(oval, paint);}

         @Overrideprotected void onDraw(Canvas canvas) {RectF recat = new RectF(50, 50, 200, 200);//画方块canvas.drawRect(recat, paint);}

         @Overrideprotected void onDraw(Canvas canvas) {RectF rect = new RectF(50, 50, 200, 200);//方块带圆角canvas.drawRoundRect(rect,30, //x轴的半径30, //y轴的半径paint);}

         @Overrideprotected void onDraw(Canvas canvas) {Path path = new Path(); //定义一条路径path.moveTo(10, 10); //移动到 坐标10,10path.lineTo(50, 60);path.lineTo(200,80);path.lineTo(10, 10);//画三角canvas.drawPath(path, paint);}


楼主只是简单的举些例子,更多内容一看 android的Canvas.class的源码

代码例子下载地址
访问密码 8fd9

Android Canvas简单使用相关推荐

  1. android canvas添加文字居中,android Canvas drawText 文字居中

    1首先利用canvas获取画布的宽高, //获取屏幕的宽和高 int width = canvas.getWidth(); int height = canvas.getHeight(); 2获取文字 ...

  2. android 夜间模式代码,Android 超简单的夜间模式如何实现?

    原标题:Android 超简单的夜间模式如何实现? 本文作者 作者: 唐子玄 实现夜间模式有很多种方式,经过多次尝试,算是找到了一种性价比较高的方式. 1 主题方式 这是最正统的方式,但工作量巨大,因 ...

  3. android 自定义画笔,在Android Canvas中使用撤销/重做操作的自定义画笔

    我想使用自定义画笔&撤消/重做操作实现画布绘制应用程序.首先,我的代码完美工作,无需使用自定义画笔(包括撤消/重做操作).根据这个答案How to make custom brush for ...

  4. Android Canvas总结

    0x00 前言 在Android开发中,有时产品需求会要我们实现一个复杂的控件,如果控件不是常用的类型,这时候我们不得不写一个自定义的控件来实现. 自定义一个控件,目前一般通过继承View或者Surf ...

  5. Android Studio简单设置

    2019独角兽企业重金招聘Python工程师标准>>> Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面 ...

  6. 简单Android手机APP地图,android最简单手机地图APP(只需5分钟)

    android最简单手机地图APP--只有三部分. 第一部分 首先建立一个MapActivity在setContentView(R.layout.activity_map);中创建一个代码如下. [h ...

  7. android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...

    Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...

  8. 用html5做一个简单的作品,html5 canvas 简单画板实现代码

    canvas简单画板 canvas简单画板 提示:您可以先修改部分代码再运行

  9. 【转】Android Studio简单设置

    原文网址:http://ask.android-studio.org/?/article/14 Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以 ...

最新文章

  1. python爬虫有什么用处-python为什么叫爬虫 python有什么优势
  2. go语言按行读取文件
  3. 【bzoj4444】[Scoi2015]国旗计划 倍增
  4. Keras中LSTM的return_sequences和return_state
  5. python的os模块使用_Python之os模块的常见用法
  6. 华为P30系列机身侧面照曝光 摄像头仍然“凸起”...
  7. SecureCRT 远程端中文乱码问题处理
  8. RDP协议详细解析(一)
  9. php6 配置,thinkphp6下载安装与配置图文详细讲解教程(composer下载安装)
  10. 笨办法学Python(第三版)pdf
  11. 02. 实现Singleton模式(C++版本)
  12. 使用echarts将Excel的数据可视化
  13. 永洪BI配置测试及遇到的一些问题
  14. 软件测试能干多久?测试员能干到多大年龄?
  15. 网站右侧广告悬浮代码html,js网站广告悬浮代码
  16. arm linux驱动 知乎_学习linux驱动开发的方法?
  17. 了不起的中国公链 | Conflux AMA实录
  18. PostgreSQL的ON CONFLICT
  19. 一键生成各种姿势的火柴人gif:在线录制真人视频即可转换 | 代码开源
  20. 【天光学术】舞蹈论文:生本理念下多媒体技术在舞蹈教学中的运用(节选)

热门文章

  1. 7-9 输出大写英文字母 (15 分)
  2. PAT乙级 1023 组个最小数 (20 分)
  3. UCSD本科数学计算机专业前景如何,2020年UCSD计算机工程排名真该小心来考查
  4. 软件工程第二次作业(原型设计)
  5. ubuntu16.04安装teamviewer12
  6. Android学习笔记View的工作原理
  7. Hibernate向MySQL插入中文数据--乱码解决
  8. H5学习之旅-H5的表单(11)
  9. cos,sina,tan,cot
  10. windows环境 logstash file input fail 解决