android view各属性详解之onDraw
2016-07-01 13:21
399 查看
开篇镇山之作,怎么镇山呢,算了,不会,那就来一点简单而又复杂的,那就是onDraw
函数,至于怎么简单,那是我解说简单,也就只简单了解。至于复制,onDraw顾名思义就是在画布上画上你想要的东西
onDraw在view和viewgroup中的调用方式是不一样的,在Viewgroup中如果你没有设置背景,就不会调用onDraw方法,在view中都会调用该方法
onDraw的基本用法
下面是画一个简单的圆
效果图:
在手机屏幕上面画东西跟你在真正的纸上画东西有点相似,画画肯定需要纸,然后需要笔,然后在手机屏幕上也有纸和笔
纸既是:Draw
笔既是:Paint
下面是Paint的一些属性
paint.setAntiAlias(true);//抗锯齿功能
paint.setColor(Color.RED); //设置画笔颜色
paint.setStyle(Style.FILL);//设置填充样式
paint.setStrokeWidth(30);//设置画笔宽度
paint.setShadowLayer(10, 15, 15,Color.GREEN);//设置阴影
void setStyle (Paint.Style style) 设置填充样式
Paint.Style.FILL :填充内部
Paint.Style.FILL_AND_STROKE :填充内部和描边
Paint.Style.STROKE :仅描边
setShadowLayer (float radius, float dx,float dy, int color) 添加阴影
参数:
radius:阴影的倾斜度
dx:水平位移
dy:垂直位移
java代码:
下面是我参考的大神的博客:如果想要了解跟多的可以去看
Android自定义控件三部曲文章索引
函数,至于怎么简单,那是我解说简单,也就只简单了解。至于复制,onDraw顾名思义就是在画布上画上你想要的东西
onDraw在view和viewgroup中的调用方式是不一样的,在Viewgroup中如果你没有设置背景,就不会调用onDraw方法,在view中都会调用该方法
onDraw的基本用法
下面是画一个简单的圆
效果图:
在手机屏幕上面画东西跟你在真正的纸上画东西有点相似,画画肯定需要纸,然后需要笔,然后在手机屏幕上也有纸和笔
纸既是:Draw
笔既是:Paint
下面是Paint的一些属性
paint.setAntiAlias(true);//抗锯齿功能
paint.setColor(Color.RED); //设置画笔颜色
paint.setStyle(Style.FILL);//设置填充样式
paint.setStrokeWidth(30);//设置画笔宽度
paint.setShadowLayer(10, 15, 15,Color.GREEN);//设置阴影
void setStyle (Paint.Style style) 设置填充样式
Paint.Style.FILL :填充内部
Paint.Style.FILL_AND_STROKE :填充内部和描边
Paint.Style.STROKE :仅描边
setShadowLayer (float radius, float dx,float dy, int color) 添加阴影
参数:
radius:阴影的倾斜度
dx:水平位移
dy:垂直位移
java代码:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //设置画笔基本属性 Paint paint = new Paint(); //抗锯齿功能 paint.setAntiAlias(true); //设置画笔颜色 paint.setColor(Color.RED); //设置填充样式 Style.FILL/Style.FILL_AND_STROKE/Style.STROKE paint.setStyle(Paint.Style.FILL); //设置画笔宽度 paint.setStrokeWidth(5); //设置阴影 paint.setShadowLayer(10, 15, 15, Color.GREEN); //设置画布背景颜色 canvas.drawRGB(255, 255, 255); //画圆 canvas.drawCircle(190, 200, 150, paint); }
下面是我参考的大神的博客:如果想要了解跟多的可以去看
Android自定义控件三部曲文章索引
相关文章推荐
- Android实现表情 抓取新浪表情
- 详解Android解析Xml的三种方式——DOM、SAX以及XMLpull
- 配置View桌面时找不到域的解决方法
- 完全克隆的虚拟桌面部署问题
- 实例讲解JavaScript的Backbone.js框架中的View视图
- Android中View自定义组合控件的基本编写方法
- Android 自定义View步骤
- Android自定义View仿QQ健康界面
- Android重写View实现全新的控件
- 解读ASP.NET 5 & MVC6系列教程(16):自定义View视图文件查找逻辑
- android开发环境遇到adt无法启动的问题分析及解决方法
- Android开发 旋转屏幕导致Activity重建解决方法
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- Android开发技巧之ViewStub控件惰性装载
- Android自定义View过程解析
- Android 自定义View 密码框实例代码
- Android自定义View软键盘实现搜索
- thinkphp3.x自定义Action、Model及View的简单实现方法
- codeigniter中view通过循环显示数组数据的方法
- MVVM模式中ViewModel和View、Model有什么区别?