Android中使用canvas定制控件(控件周围阴影)
2014-09-03 11:58
309 查看
首先上一张效果图:
基本的思路是:
1.绘制圆角矩形。
2.四周添加阴影。
开始绘制
在onDraw中,首先初始化画笔:
paint.setShadowLayer中各个参数分别是:阴影半径,阴影x坐标偏移,阴影y坐标偏移,阴影颜色。
再根据效果图,计算绘制的坐标:
使用canvas的drawRoundRect进行绘制:
drawRoundRect的各个参数:RectF包含一个矩形的四个单精度浮点坐标,圆角半径x,圆角半径y,画笔。
这样完成了控件的定制。
控件的使用
从Android 3.0开始,Android的2D渲染管线可以更好的支持硬件加速。硬件加速使用GPU进行View上的绘制操作,但是在canvas中,对文字以外的图形设置阴影都会失效,因此在使用这个自定义控件时应该关闭硬件加速。这里仅在view级别关闭。
参考文章:
Android中的硬件加速
保留一切权利,转载清注明原始地址
http://www.cnblogs.com/irrienberith/articles/3953358.html
基本的思路是:
1.绘制圆角矩形。
2.四周添加阴影。
开始绘制
在onDraw中,首先初始化画笔:
Paint paint = new Paint(); paint.setColor(Color.WHITE); paint.setShadowLayer(10f, 0, 0, IFUIConstants.BACKGROUND_COLOR_GREY);
paint.setShadowLayer中各个参数分别是:阴影半径,阴影x坐标偏移,阴影y坐标偏移,阴影颜色。
再根据效果图,计算绘制的坐标:
WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); //获取屏幕宽度 float width = wm.getDefaultDisplay().getWidth() - 10; //控件不含阴影部分的宽度 float startLeft = 5; //圆角矩形起始坐标 float startTop = 3;
使用canvas的drawRoundRect进行绘制:
canvas.drawRoundRect(new RectF(startLeft, startTop, (startLeft+width), 40, 5, 5, paint);
drawRoundRect的各个参数:RectF包含一个矩形的四个单精度浮点坐标,圆角半径x,圆角半径y,画笔。
这样完成了控件的定制。
控件的使用
//在listview中使用 holder.btn = new MyButton(this); holder.btn.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 43)); //关闭硬件加速才能显示阴影 holder.btn.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
从Android 3.0开始,Android的2D渲染管线可以更好的支持硬件加速。硬件加速使用GPU进行View上的绘制操作,但是在canvas中,对文字以外的图形设置阴影都会失效,因此在使用这个自定义控件时应该关闭硬件加速。这里仅在view级别关闭。
参考文章:
Android中的硬件加速
保留一切权利,转载清注明原始地址
http://www.cnblogs.com/irrienberith/articles/3953358.html
相关文章推荐
- Android中使用canvas定制控件(控件周围阴影)
- android Button,textView 等控件设置控件内嵌周围图片使用方法
- android Button,textView 等控件设置控件内嵌周围图片使用方法
- Android中AlertDialog控件的基本使用和定制方法
- 定制自己的动画 View 控件(Canvas 使用)
- 在文字周围环绕一层阴影效果[android:shadow] 使用
- android Button,textView 等控件设置控件内嵌周围图片使用方法
- Silverlight教程第七部分: 使用控件模板定制控件的观感
- 使用用户控件和定制的Web部件个人化你的门户网站
- 用户控件的定制和使用
- 使用控件模板定制控件的观感
- (转)ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站(一)
- 使用控件模板定制控件的观感
- Android 各种控件使用方法
- Silverlight教程第七部分: 使用控件模板定制控件的观感
- android控件动态使用
- 如何新建和使用Android控件
- ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站
- Silverlight 中文教程第七部分: 使用控件模板定制控件的观感
- Study on Android【四】--显示控件使用