2012-06-22 156 views
0

我正在设计一个应用程序,我有几个按钮显示在表格布局。我有两个设备来测试应用程序。一个是三星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

添加机器人:layout_width =“FILL_PARENT”和机器人:layout_weight =“1”,如果有按钮上的大文本,然后也做这个android:singleLine =“true”。 –

+0

是的,工作。谢谢@ZazGmy :) –

+0

使布局中的所有视图的宽度填充父权与重量1.如果您在按钮上显示的文本大小大于按钮的宽度,然后它包成两行.for避免此使按钮单线 –

回答

2

有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; 
    } 
+0

我一定会尝试这个以及回来。 –

相关问题