您的位置:首页 > 移动开发 > Android开发

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代码:

@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自定义控件三部曲文章索引

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息