如何根据屏幕大小调整窗口小部件的大小?

时间:2012-06-22 06:21:32

标签: android

我正在设计一个应用程序,我在表格布局中显示了几个按钮。我有两个设备来测试应用程序。一个是三星Galaxy Tab 1,另一个是三星galaxy Ace。我在android清单文件中使用了以下内容来允许调整大小。

<supports-screens 
android:resizeable="true" 
android:smallScreens="true" 
android:normalScreens="true" 
android:xlargeScreens="true" 
android:anyDensity="true" />  

所有按钮也有

android:layout_weight="1".

允许他们占用显示屏上可用的额外空白。这在标签上工作正常,但在手机上的一些按钮包裹。即“按钮”一词显示在2行上。我希望按钮能够自我调整大小,以便在任何显示器上都没有按钮高度包装。有人能告诉我如何实现这一目标吗?哦,该应用程序是为Android 2.3.3开发的。

1 个答案:

答案 0 :(得分:2)

有两种方法可以实现它:

(1)将合适尺寸的图像放在xhdpi,hdpi,mdpi和ldpi文件夹中。设备将根据其分辨率自动从这些文件夹中获取图像。

(2)您还可以动态检测设备的分辨率,然后相应地设置布局,如下所示:

    DisplayMetrics displayMetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    switch(displayMetrics.densityDpi){ 
        case DisplayMetrics.DENSITY_LOW: 
            // layout for small devices.
            break; 
        case DisplayMetrics.DENSITY_MEDIUM: 
            // layout for medium devices.
            break; 
        case DisplayMetrics.DENSITY_HIGH: 
            // layout for bigger devices.
            break; 
    }