【问题标题】:Layouts on the basis of device size基于设备尺寸的布局
【发布时间】:2013-06-04 09:38:22
【问题描述】:

我现在很困惑。我尝试制作不同的图像并将它们放在适当的文件夹(xhdpi,ldpi)中,但我的应用程序不适用于从 2.7 英寸到 10 英寸的每种设备类型。所以我决定为不同的屏幕尺寸制作不同的布局。我正在从此代码中获取以英寸为单位的设备尺寸 -

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels/dm.xdpi,2);
double y = Math.pow(dm.heightPixels/dm.ydpi,2);
double screenInches = Math.sqrt(x+y);
Log.d("debug","Screen inches : " + screenInches);

现在我想要的是,如果设备大小在 2.7 左右,我的应用开始使用自定义文件夹中的布局。这可能吗?

【问题讨论】:

标签: android android-layout android-emulator android-screen-support android-screen


【解决方案1】:

您可以在具有不同限定符的布局文件之一中包含小部件上的标签,并在运行时检查这些标签。

layout-large/layout1.xml:
     <Button
    android:id="@+id/btn1"
    ...
    android:tag="large" />

layout-small/layout1.xml:
     <Button
    android:id="@+id/btn1"
    ...
    android:tag="small" />

在运行时检查它们:

findViewById(R.id.btn1).getTag().toString()

【讨论】: