0

我一直在试图弄清楚这一点,但我真的不明白。如果我想创建一个具有一种布局的应用程序,该布局应该适合所有 android 设备(通过缩放)..我怎样才能实现这一点?..例如。 . 我可能有一个 300dp 的 editText,在我的三星 Galaxy S2 上看起来很棒.. 但是如果我在我的 nexus 10 上运行相同的应用程序,它看起来会非常小,然后我希望 editText 在两者上放大宽度和高度适合我的 nexus 10 .. 有没有简单的方法来实现这一点?

我注意到有一种叫做重量的东西..但是如果我创建了三个editText,其中第一个的重量为10,第二个的重量为20,然后第三个的重量为80,最后一个永远不会出现...

无论如何..你如何通过最佳实践处理这些东西?

4

4 回答 4

0

这是我的做法,

创建一个您可以调用的函数,该函数返回与设备宽度相关的大小。“32”是任意的,它为您提供与屏幕成比例的相对字体大小。

textView.setTextSize(getFontSize(activity));


public static int getFontSize (Activity activity) { 

    DisplayMetrics dMetrics = new DisplayMetrics();
    activity.getWindowManager().getDefaultDisplay().getMetrics(dMetrics);

    // lets try to get them back a font size realtive to the pixel width of the screen
    final float WIDE = activity.getResources().getDisplayMetrics().widthPixels;
    int valueWide = (int)(WIDE / 32.0f / (dMetrics.scaledDensity));
    return valueWide;
}
于 2013-10-12T10:55:43.313 回答
0

这份文件会有很大帮助

http://developer.android.com/guide/practices/screens_support.html

如果您的布局在手机和平​​板电脑上看起来都很好,您将需要有单独的布局文件,一个在 layout 中,另一个在 layout-xlarge 中(用于 10" 平板电脑),为 edittext 放置不同的大小。

另一种方法是保留单个布局文件,但将所有与大小相关的值提取到单独的 xml 文件中。将它们分别放在 values 和 values-xlarge 文件夹中。

于 2013-02-21T09:30:01.470 回答
0

一般这种情况可以通过添加来处理

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

在 androidmanifest.xml 中

于 2013-02-21T09:17:17.573 回答
0

使用 xhdpi 资源并尝试根据设备使用布局参数在运行时设置所有布局。

或让 android 决定什么最适合设备创建以下文件夹

  1. 布局-大
  2. 布局小
  3. 布局-sw600
  4. 布局-sw720

和类似的文件夹来更好地组织您的布局

于 2013-02-21T09:18:32.743 回答