Android Canvas类支持一组丰富的绘图基元 - 圆形,线条等.我有一个应用程序,使用这些来绘制一些统计数据.
阅读http://developer.android.com/reference/android/graphics/Canvas.html#drawLine%28float,%20float,%20float,%20float,%20android.graphics.Paint%29上的说明 ...我不清楚坐标是什么单位或如何使它们与设备/分辨率无关.
这些是什么单位以及什么是绘制线条和圆形以及矩形的"最佳实践",它们适用于许多不同的屏幕尺寸和分辨率?提前致谢.
Android 文档说“位置和尺寸的单位是像素”。经过一段时间的实验,我发现在2.0版本之前,单位是像素。但从2.0开始,单位很可能是dip(与设备无关的像素)。
对于以下代码:
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(0);
canvas.drawRect(new Rect(1, 1, 319, 319), paint);
Run Code Online (Sandbox Code Playgroud)
我在 Android 2.0+ 的 320x480、480x800 和 240x320 模拟器上得到与屏幕宽度相同大小的正方形。
这个发现让我解决了这个问题:大屏幕上的 1 像素垂直线有时是 2 像素宽。将描边宽度设置为 0 以绘制与屏幕尺寸无关的 1 像素线条。
编辑
在获得更多 Android 经验后,我需要纠正我的结论。实际上,AndroidManifest.xml 的“supports-screens”标签中有一个属性“android:anyDensity”。该属性默认为 true。当为 true 时,度量单位为 dp,否则为像素。
| 归档时间: |
|
| 查看次数: |
1371 次 |
| 最近记录: |