最近使用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 );

去试试效果吧!

忍不住要小抱怨一句:咋这么不智能呢?竟然还允许有画不出水平线的情况发生~~~~~

更多相关文章

  1. 分享一点关于Android屏幕适配的种种
  2. Android(安卓)OpenGL 显示基本图形及相关概念解读
  3. Android(安卓)简单快捷高效的屏幕适配
  4. android根据屏幕尺寸区分设备类型,phone或者pad
  5. Android(安卓)Scroll详解(三):Android(安卓)绘制过程详解
  6. android游戏引擎初探
  7. android区分pad还是phone设备
  8. Android(安卓)之 Project Butter 详细介绍
  9. 两分钟理解Android中PX、DP、SP的区别

随机推荐

  1. 数据存储有几种方式?分别是什么?
  2. 使用NDK的Cmake编译报错:Invalid Android
  3. Android之EditText 属性汇总
  4. android 相对布局中的 控件布局
  5. android 中的几种目录
  6. Android 4.0 对通知栏图标的尺寸有要求
  7. Android中webview跟JAVASCRIPT中的交互
  8. 取消默认Listview点击的显示的颜色
  9. Android获取经纬度
  10. Android编译系统学习总结