Android布局缩放

Android布局缩放,android,android-layout,scale,android-screen-support,Android,Android Layout,Scale,Android Screen Support,如果将Android清单文件中的目标SDK版本设置为“3”,那么大屏幕设备上的布局将只是小屏幕设备上的放大版本。一旦将目标SDK设置为更高的SDK,就可以为每个屏幕密度创建单独的布局,从而提供更好的用户体验 然而我的版面主要由图像组成,这些图像的分辨率足够高,即使在放大的情况下,它们在所有屏幕尺寸上都能显示得很好,因为它们足够大,不需要拉伸。现在,对我来说,创建一个小屏幕布局并将其放大会容易得多,因为它在大屏幕上仍然看起来不错。有没有什么方法可以在不返回API级别3的情况下获得这种效果?只是不要

如果将Android清单文件中的目标SDK版本设置为“3”,那么大屏幕设备上的布局将只是小屏幕设备上的放大版本。一旦将目标SDK设置为更高的SDK,就可以为每个屏幕密度创建单独的布局,从而提供更好的用户体验


然而我的版面主要由图像组成,这些图像的分辨率足够高,即使在放大的情况下,它们在所有屏幕尺寸上都能显示得很好,因为它们足够大,不需要拉伸。现在,对我来说,创建一个小屏幕布局并将其放大会容易得多,因为它在大屏幕上仍然看起来不错。有没有什么方法可以在不返回API级别3的情况下获得这种效果?

只是不要为更大的屏幕指定布局。默认情况下,除非有更具体的布局可用,否则所有屏幕都使用相同的布局。如果使用
match\u parent
将宽度和高度以及图像匹配到
scaleType=“fitCenter”
“centerCrop”
——诸如此类的东西,它应该填充运行它的任何屏幕大小。

您可以使用权重参数。
“权重”是一个术语,用于指定如果绘制后还有剩余空间,则特定视图应占据屏幕的多少部分

只需制作一个
线性布局
,并在其中放置两个
文本视图

<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>


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

别忘了让你的应用程序与平板电脑兼容。你必须加上

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


在你的应用程序清单中。

Hm。我以为只要你不使用AbsoluteLayout之类的东西,Android已经做到了这一点。有一些技巧可以帮助完成过渡。我不完全确定这个问题在问什么,但我会试一试。API级别3是否以高宽比或其他方式进行缩放

我发现,从手机到平板电脑,大多数用户界面的丑陋之处都与宽度有关。有一种逻辑可以将宽度固定在某个分辨率。否则,布局看起来和行为都很好。还有其他技巧,如使用不同的dimens.xml调整资产大小,以及为不同的屏幕大小和密度设置不同的dimens.xml集


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

通过不同屏幕大小调整图像大小的唯一方法是使用九块补丁。以下是关于该主题的更多资源:


我相信你唯一能做的就是在版面中使用相对宽度/高度(重量)和以ninepath格式化的图像。

还要确保你的版面不会覆盖你想要的版面,也就是说,有版面文件夹(想要的)但是,如果您有一个布局xlarge文件夹,其布局具有相同的名称,编译器将实时从xlarge屏幕(10英寸平板电脑)上的布局xlarge文件夹中选择一个这适用于定位视图,但假设我想要缩放在
dp
中设置的边框宽度。实际的
TextView
将根据屏幕大小进行缩放,但边框小部件和文本大小(以及
dp
中设置的任何其他内容)会根据屏幕大小进行缩放这是一个关于布局设计的非常有用的链接。它会让你了解android框架如何帮助解决屏幕大小问题。我是一个经验丰富的android开发人员,我了解布局和android UI的工作原理。我很难理解当我完全没有理由(因为手机界面在平板电脑上看起来非常好)时,调整布局比例(就像我通常做的那样)。在这种情况下,它要复杂得多,因为所有东西都必须非常精确地对齐(与像素对齐)根据我的要求,所以很难根据每个屏幕密度来缩放所有内容。非常确定默认情况下这一切都是正确的。