Android中使用canvas定制控件(控件周围阴影)
来源:互联网 发布:高校教师资格证网络 编辑:程序博客网 时间:2024/05/17 03:03
首先上一张效果图:
基本的思路是:
1.绘制圆角矩形。
2.四周添加阴影。
开始绘制
在onDraw中,首先初始化画笔:
1 Paint paint = new Paint();2 paint.setColor(Color.WHITE);3 paint.setShadowLayer(10f, 0, 0, IFUIConstants.BACKGROUND_COLOR_GREY);
paint.setShadowLayer中各个参数分别是:阴影半径,阴影x坐标偏移,阴影y坐标偏移,阴影颜色。
再根据效果图,计算绘制的坐标:
1 WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);2 //获取屏幕宽度3 float width = wm.getDefaultDisplay().getWidth() - 10;4 //控件不含阴影部分的宽度5 float startLeft = 5;6 //圆角矩形起始坐标7 float startTop = 3;
使用canvas的drawRoundRect进行绘制:
canvas.drawRoundRect(new RectF(startLeft, startTop, (startLeft+width), 40, 5, 5, paint);
drawRoundRect的各个参数:RectF包含一个矩形的四个单精度浮点坐标,圆角半径x,圆角半径y,画笔。
这样完成了控件的定制。
控件的使用
1 //在listview中使用2 holder.btn = new MyButton(this);3 holder.btn.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 43));4 //关闭硬件加速才能显示阴影5 holder.btn.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
从Android 3.0开始,Android的2D渲染管线可以更好的支持硬件加速。硬件加速使用GPU进行View上的绘制操作,但是在canvas中,对文字以外的图形设置阴影都会失效,因此在使用这个自定义控件时应该关闭硬件加速。这里仅在view级别关闭。
阅读全文
0 0
- Android中使用canvas定制控件(控件周围阴影)
- Android中AlertDialog控件的基本使用和定制方法
- android 控件阴影效果
- android控件阴影效果
- Android中利用shape定制控件边框
- 在Android中定制Switch控件
- Android中利用shape定制控件边框
- Android中利用shape定制控件边框
- Android定制控件
- 在文字周围环绕一层阴影效果[android:shadow] 使用
- Android 自定义控件canvas
- android控件边缘添加阴影
- 简单定制Android控件(2) - 点赞列表控件
- android自定义控件(一),组合控件Titlebar的定制
- Silverlight 使用控件模板定制控件
- 工作日志记录:Android自定义控件中使用的canvas裁剪的相关参数记录:
- Android去掉EditText控件周围橙色高亮区域
- android 定制个性按钮 控件
- 如何在cylinux环境下下载pip和安装python所需模块
- 关于H5中的<video></video>标签的用法总结
- 0/1背包问题
- 【无人驾驶量产得靠128线廉价激光雷达,中国将是最大市场】专访Velodyne自动驾驶VP
- SpringBoot .yml配置文件
- Android中使用canvas定制控件(控件周围阴影)
- iOS 常见错误总结(2)
- 如何成为一名对话系统工程师
- Airkiss 2.0 如何导入到自己的项目中
- 阿里速度!100亿脱贫基金第一个项目落地
- 【每日一题(11)】Wine Trading in Gergovia POJ
- docker系列-04.linux关闭selinux
- Canvas 入门3 Click事件处理
- 【每日一题(12)】Windows Message Queue ZOJ