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

Android 如何根据屏幕大小调整小部件的大小?,android,Android,我正在设计一个应用程序,我有几个按钮显示在表格布局中。我有两台设备来测试应用程序。一个是三星galaxy Tab 1,另一个是三星galaxy Ace。我在android清单文件中使用了以下内容来允许调整大小 <supports-screens android:resizeable="true" android:smallScreens="true" android:normalScreens="true" android:xlargeScreens="true" android

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

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

这使它们能够占用显示屏上额外的可用空白空间。这在标签上可以很好地工作,但在手机上一些按钮会被包裹起来。i、 e“按钮”一词显示在两行上。我希望这些按钮能够自行调整大小,以便在任何显示器上都不会有按钮按高度包裹。有人能告诉我如何做到这一点吗?哦,这个应用程序是为android 2.3.3开发的。

有两种实现方法:

(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; 
    } 

添加android:layout\u width=“fill\u parent”和android:layout\u weight=“1”如果按钮上有大文本,那么也可以这样做android:singleLine=“true”。是的,这样做有效。谢谢@ZazGmy:)将布局中所有视图的宽度填充为权重1。如果您在按钮上显示的文本大小大于按钮的宽度,则将其包装为两行。为避免此情况,请将按钮设置为单行。我一定要尝试此操作并返回。
    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; 
    }