查看多屏支持

时间:2012-04-13 17:19:15

标签: android view bitmap screen

我知道那里有很多关于这个主题的信息,但我还是有点困惑。我为一个Android应用程序创建了一个类视图,它可以使用位图和文本。

我像这样定义文本位置:

canvas.drawText("SCORE: " + score, (canvas.getWidth() - 150),
                    (canvas.getHeight() - 20), paintScore);

每个例子,但我知道这不是最好的方法,因为它看起来就像我想要的手机一样,但在屏幕较小或较大的屏幕上看起来很像可怕的,或只是在屏幕外。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

最好选择宽度来定位相对于画布大小的内容 - 所以找出你想要手机上文字的位置 - 例如,如果你想让它从中心开始:

int x = canvas.getWidth()/2

如果这些相对类型测量结果不合理,作为最后的手段,android指定了一种特殊的资源(@dimen),您可以在各种值文件夹(例如values-small/dimen.xml或那里有values-xlarge/dimen.xml)和硬编码整数值。 (如docs中所示)然后像检索其他资源一样检索它们:

getResources().getDimensionPixelOffset(R.dimen.score_margin)

答案 1 :(得分:0)

你有很多解决方案:

1)使用与密度无关的像素(dip):

这是一种从px转换为dip的方法:

public static int pxToDip(Activity activity, int size){

    Resources r = activity.getResources();
    int dipSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, size, r.getDisplayMetrics());

    return dipSize;

}

2)使用百分比:

获取屏幕尺寸,将其与所需的文字大小进行比较,然后按百分比添加保证金