在当前的测试项目中,我有一个自定义视图,我将其命名为SVGView,它只是将一些矢量图形(路径等)绘制到Canvas中.
XML布局文件只包含一个FrameLayout,它包含一个子SVGView.当前示例中SVGView 的android:layout_width和android:layout_height属性都设置为300px(包含FrameLayout的空间足够容纳).在SVGView中onMeasure(),调用setMeasuredDimension()给出参数300,300 .
当onDraw()调用方法将图形绘制到Canvas对象时,我发现Canvas没有标识矩阵; 相反,Canvas已经应用了一些规模转换.这是什么原因?我(错误地)假设Canvas的缩放比例为1,因为View的实际尺寸,Canvas以及它在屏幕上的表示都匹配.
我问这与我在前面的问题中详细描述的问题有关:Canvas绘图缓存位图有点模糊或具有反别名.我发现当我将缓存位图绘制回Canvas时,它与原始矢量图形相比有点模糊,尽管事实上我正在使用没有重新缩放并使用关闭消除锯齿的Paint来绘制位图.我现在只是绝对相信必须有一些缩放过程,我不知道这会导致这种情况发生在位图上.要发现onDraw()的Canvas参数已经应用了一些缩放转换可能是解决这个问题的一个重要线索 - 但我无法理解为什么它有这样的缩放,当Canvas的尺寸肯定与该区域完全匹配时它最终画的屏幕.
谢谢,
崔佛
| 归档时间: |
|
| 查看次数: |
1352 次 |
| 最近记录: |