为不同设备缩放Android Canvas 2D图形

3

我之前问过类似的问题,但没有得到任何回复,所以我要试着重新表述一下……

如何最好地确保Canvas类中的2D图形原语在不同设备(具有不同屏幕分辨率的手机)上正确缩放?它们是否应该自动缩放?是否有一种方法可以缩放整个画布?我是否应该检测大小并在绘制每条线、圆和点时进行自己的缩放?我是否应该通过操作视图来实现?还是其他方式?

目标是确保图形填满屏幕,充分利用可用分辨率,但不会溢出。

提前感谢!

1个回答

4
在我的应用中,我做的方法是通过跟踪我的 View 的大小来实现的。
@Override 
protected void onSizeChanged(int width, int height, int oldw, int oldh) {
  //do some calculations with width and height
}

每当我需要手动绘制某些东西时,我都会按照总分辨率的百分比来完成。具体情况因人而异。


你说的“作为总分辨率的百分比”是什么意思?是指在绘制图形时,对线条长度、圆的直径、点的大小进行程序调整吗?我正在画统计和医学数据的图表、图形和其他表示形式。我也考虑过这样做,但我想确认一下Android是否已经有一个独立于设备的坐标系用于2D绘图。 - Peter Nelson
这就是他的意思。Android 的坐标系统不是设备无关的。 - Romain Guy
顺便提一下,由于您正在绘制图表和图形,您可能会对这个问题感兴趣:http://stackoverflow.com/questions/4979444/display-stock-performance-in-android/4979718#4979718 - dbyrne
谢谢。我正在做的一些东西非常专业化,其中一些将是实际的医疗数据,例如心电图。令我惊讶的是,Android自然运行在高度多分辨率环境中,却没有一个分辨率无关的2D图形库! - Peter Nelson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接