我正在创建一个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
答案 0 :(得分:0)
在android UI中通常使用xml编写并保存在布局文件夹中。不同的资源文件夹可以给出不同的名称,这将允许android根据不同的条件引用它们。
这个link来自android文档,它解释了resoucrce文件夹可以采用的不同名称。
假设您的图像在不同的手机中应具有不同的尺寸。 您可以在
中放置具有相同名称的图像可绘制-LDPI /
可绘制-MDPI /
可绘制-HDPI /
因此,对于使用命令
的图像视图imageview.setImageResource(R.drawable.icon);
Android将检查手机的密度并自动从相应的文件夹中获取图标图像。可以对布局和'res'
的其他子文件夹执行相同的方法根据您的问题,我看到您正在覆盖用于执行UI的视图的“onDraw”方法。如果是这种情况,AFAIK您将不得不测量可用空间并以编程方式创建和测量UI。