使用android中drawline函数无法绘制水平线的解决办法
16lz
2021-12-04
最近使用canvas在android上做绘图开发,发现如果Paint的setStrokeWidth设置为1,且canvas没有设置抗锯齿效果,则drawline函数将无法绘制出水平的线段,这是为什么呢?原来,如果你将StrokeWidth设为0,android将为你绘制hairline(一般为1pix),而如果你设置为1,那么android将根据比例为你计算1单位宽度所占的像素值,比如你现在的比例是0.75,则android就无法绘制出宽度为0.75像素的线段(特别是在模拟器上,可能更容易出现这种情况,因为电脑像素与手机像素大小不一样)。
那么怎么解决这个问题呢?其实很简单---虽然我是经过了一上午的时间才琢磨出来的,以为我的问题是在画multiline的时候,一条线段的部分被打断了!!!。那就是为Paint设置抗锯齿效果,方法为:Paint pen = new Paint(Paint.ANTI_ALIAS_FLAG );
去试试效果吧!
忍不住要小抱怨一句:咋这么不智能呢?竟然还允许有画不出水平线的情况发生~~~~~
更多相关文章
- 分享一点关于Android屏幕适配的种种
- Android(安卓)OpenGL 显示基本图形及相关概念解读
- Android(安卓)简单快捷高效的屏幕适配
- android根据屏幕尺寸区分设备类型,phone或者pad
- Android(安卓)Scroll详解(三):Android(安卓)绘制过程详解
- android游戏引擎初探
- android区分pad还是phone设备
- Android(安卓)之 Project Butter 详细介绍
- 两分钟理解Android中PX、DP、SP的区别