Android Canvas简单使用
转载请注明出处王亟亟的大牛之路
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简单使用相关推荐
- android canvas添加文字居中,android Canvas drawText 文字居中
1首先利用canvas获取画布的宽高, //获取屏幕的宽和高 int width = canvas.getWidth(); int height = canvas.getHeight(); 2获取文字 ...
- android 夜间模式代码,Android 超简单的夜间模式如何实现?
原标题:Android 超简单的夜间模式如何实现? 本文作者 作者: 唐子玄 实现夜间模式有很多种方式,经过多次尝试,算是找到了一种性价比较高的方式. 1 主题方式 这是最正统的方式,但工作量巨大,因 ...
- android 自定义画笔,在Android Canvas中使用撤销/重做操作的自定义画笔
我想使用自定义画笔&撤消/重做操作实现画布绘制应用程序.首先,我的代码完美工作,无需使用自定义画笔(包括撤消/重做操作).根据这个答案How to make custom brush for ...
- Android Canvas总结
0x00 前言 在Android开发中,有时产品需求会要我们实现一个复杂的控件,如果控件不是常用的类型,这时候我们不得不写一个自定义的控件来实现. 自定义一个控件,目前一般通过继承View或者Surf ...
- Android Studio简单设置
2019独角兽企业重金招聘Python工程师标准>>> Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面 ...
- 简单Android手机APP地图,android最简单手机地图APP(只需5分钟)
android最简单手机地图APP--只有三部分. 第一部分 首先建立一个MapActivity在setContentView(R.layout.activity_map);中创建一个代码如下. [h ...
- android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...
Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...
- 用html5做一个简单的作品,html5 canvas 简单画板实现代码
canvas简单画板 canvas简单画板 提示:您可以先修改部分代码再运行
- 【转】Android Studio简单设置
原文网址:http://ask.android-studio.org/?/article/14 Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以 ...
最新文章
- python爬虫有什么用处-python为什么叫爬虫 python有什么优势
- go语言按行读取文件
- 【bzoj4444】[Scoi2015]国旗计划 倍增
- Keras中LSTM的return_sequences和return_state
- python的os模块使用_Python之os模块的常见用法
- 华为P30系列机身侧面照曝光 摄像头仍然“凸起”...
- SecureCRT 远程端中文乱码问题处理
- RDP协议详细解析(一)
- php6 配置,thinkphp6下载安装与配置图文详细讲解教程(composer下载安装)
- 笨办法学Python(第三版)pdf
- 02. 实现Singleton模式(C++版本)
- 使用echarts将Excel的数据可视化
- 永洪BI配置测试及遇到的一些问题
- 软件测试能干多久?测试员能干到多大年龄?
- 网站右侧广告悬浮代码html,js网站广告悬浮代码
- arm linux驱动 知乎_学习linux驱动开发的方法?
- 了不起的中国公链 | Conflux AMA实录
- PostgreSQL的ON CONFLICT
- 一键生成各种姿势的火柴人gif:在线录制真人视频即可转换 | 代码开源
- 【天光学术】舞蹈论文:生本理念下多媒体技术在舞蹈教学中的运用(节选)