将UI设置为在不同设备上相同

时间:2011-10-17 01:42:03

标签: android user-interface view

我正在创建一个Android游戏,我无法弄清楚如何保持不同设备的布局相同。我希望它从我糟糕的小手机看到同样的星系。这就是我现在正在做的事情。我试图在构造函数中获取维度,但它给了我错误,所以我在onDraw类中构建了自己的迷你构造函数。

protected void onDraw(Canvas canvas) {
if (startup){//constructor part 2
        startup=false;
        height=canvas.getHeight();
        width=canvas.getWidth();
        xinc=width/(7/2);
        yinc=height/5;
        radius=width/6;

等等。这是最好的方法吗?在我看来应该有另一种更好的方法来做到这一点。此外,所有的Android设备都有相同的(我认为它称为宽高比)宽度/高度?提前谢谢。

-Derek

1 个答案:

答案 0 :(得分:0)

在android UI中通常使用xml编写并保存在布局文件夹中。不同的资源文件夹可以给出不同的名称,这将允许android根据不同的条件引用它们。

这个link来自android文档,它解释了resoucrce文件夹可以采用的不同名称。

假设您的图像在不同的手机中应具有不同的尺寸。 您可以在

中放置具有相同名称的图像

可绘制-LDPI /

可绘制-MDPI /

可绘制-HDPI /

因此,对于使用命令

的图像视图
imageview.setImageResource(R.drawable.icon);

Android将检查手机的密度并自动从相应的文件夹中获取图标图像。可以对布局和'res'

的其他子文件夹执行相同的方法

根据您的问题,我看到您正在覆盖用于执行UI的视图的“onDraw”方法。如果是这种情况,AFAIK您将不得不测量可用空间并以编程方式创建和测量UI。