android之canvas.draw方法需要注意的地方
2016-03-04 14:38
501 查看
如果需要在上图布局中画一个矩形(大小为上图布局一样大),并且线条宽为10dp即20px,需要实现后的效果如下(此篇使用的是1dp=2px的比例,用的时候请根据实际来进行换算):
布局高度int height = 100; //单位px
布局宽度int width = 200; //单位px
线条宽度int strokeWidth = 20; //单位px
那么,步骤:
1.画笔:
Paint paint = new Paint();
2.线条宽为10dp即20px,那么设置画笔为描边Stroke:
paint.setStrokeWidth(20); //线条宽20px
paint.setStyle(Paint.Style.STROKE); //设为描边,这样中间就是空的,不会被填充
3.那么开始画矩形,则位置必须是图中黑色线条位置来画,因为线条有宽度,也占了宽度的,所以画的时候位置必须取线条中间 ,即图中黑色线条画的矩形,所以正确的画矩形应该是:
canvas.drawRect(strokeWidth/2,strokeWidth/2,width-strokeWidth/2,height-strokeWidth/2,paint); //左上右下,画笔
延伸:
1.如果画矩形,如果不描边,即没有paint.setStrokeWidth(20);和paint.setStyle(Paint.Style.STROKE);,那就直接以红色矩形的左上角为点画即可
2.如果画一个圆环,如下图,也是有描边,那么画圆的时候半径就是布局的一半减去线条宽度的一半
3.如果画线,drawline,如下图所示,若有paint.setStrokeWidth(20) ,则表示画线的线条粗细为20px,那么画的时候坐标点就是下图红点,即左边界线条的中间点,即(0,10)这个点;
相关文章推荐
- Android studio 导出jar包并混淆和aar
- 【转】Android Support v4、v7、v13的区别和应用场景
- 简介Android 中的AsyncTask
- Android 摇一摇功能
- 如何将Android Studio中的项目上传到GitHub中
- Android RecyclerView 使用完全解析 体验艺术般的控件
- Android adb 模拟滑动 按键 点击事件
- android 5.1 usb调试默认关闭设置方法
- 用Kotlin开发Android
- java之android真机调试
- libgdx 与 android 的 proguard.cfg
- Android 6.0 运行时权限处理完全解析
- ProgressBar自定义
- android 通过帧动画方式播放Gif动画
- android源码framework下添加新资源的方法
- 第4章 Android dex文件格式 第三节
- Android Studio 更换国内源下载依赖库
- [置顶] Android WiFi开发 (一)扫描、连接、信息
- Android中Preference的使用以及监听事件分析
- Android Activity:四种启动模式,Intent Flags和任务栈