Android布局缩放



如果在Android清单中将目标SDK版本设置为" 3",那么您在大屏幕设备上的布局将只是Small--上的内容的缩放版本屏幕设备。将目标SDK设置为较高的SDK后,您可以为每个屏幕密度创建单独的布局,从而提供更好的用户体验。

但是,,我的布局主要由图像组成,它们的分辨率足够高,即使扩大到缩放,它们在所有屏幕尺寸上都可以很好地显示,因为它们足够大,以至于它们不足需要拉伸。现在,对于我来说,只创建一个小屏幕布局并将其缩放,因为它在大屏幕上看起来仍然不错,这将变得容易得多。有什么办法可以得到这种效果而无需返回API级别3?

您可以使用权重参数。
"重量"是一个术语,用于指定如果绘制后剩下任何空间,特定视图应占用多少。

只需制作一个LinearLayout,然后将两个TextViews放在其中:

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="small"
    android:layout_weight="0.2"
    android:background="#123" />
 <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.8"
    android:text="huge"
    android:background="#456"
 />
</LinearLayout>

您会注意到视图如何相应地占据空间。您可以为较小的屏幕创建想要的任何布局,并指定重量属性,并且每件事都将被精美地调整

只是没有为较大屏幕指定布局。默认情况下,除非有更具体的布局可用,否则它对所有屏幕都使用相同的屏幕。如果您使用match_parent的宽度和高度以及图像用于scaleType="fitCenter""centerCrop" - 类似的东西,它应该填充其运行的任何屏幕大小。

不要忘记使您的应用程序与平板电脑合理。您必须添加

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

在您的应用清单中。

hm。我认为Android已经这样做了,只要您不使用Obsolutelayout之类的东西。有一些技巧可以帮助过渡。不完全确定问题是什么,但我会试一试。API级别3级尺度与纵横比或其他?

我发现,从手机到平板电脑的大多数UI丑陋都涉及宽度。您可以使用逻辑来修复某个Res的宽度。否则,布局外观和行为也不错。还有其他技巧,例如使用不同尺寸的资产大小。xml,以及具有不同尺寸和密度的不同dimens.xml。

您不必在每个版本中拥有每个维度。您只需要拥有每个值集的基本版本,就可以在其他文件中设置不同的维度。

通过不同的屏幕大小调整图像大小的唯一方法是使用九个补丁。这是有关该主题的更多资源:http://developer.android.com/tools/help/draw9patch.html

我相信,这是您唯一可以做的是在布局中使用相对宽度/高度(重量)和格式化的图像。

最新更新