我正在开发一个 Android 2.3.3 应用程序,该应用程序可以在每个 android 手机或平板设备上运行,并且只支持Portrait。
阅读Supporting Multiple Screens我看到一张有很多屏幕尺寸和密度的表格。
我需要多少布局?每个屏幕尺寸和密度一个?
我想我只需要四个:一个用于小型、普通、大型和 x-large。
我正在开发一个 Android 2.3.3 应用程序,该应用程序可以在每个 android 手机或平板设备上运行,并且只支持Portrait。
阅读Supporting Multiple Screens我看到一张有很多屏幕尺寸和密度的表格。
我需要多少布局?每个屏幕尺寸和密度一个?
我想我只需要四个:一个用于小型、普通、大型和 x-large。
我创建了一个工具,允许您缩放/调整平板电脑和小屏幕设备的布局,并在此处发表了一篇关于它的博客文章:http: //onemanmobile.blogspot.com/2012/04/how-to-scale-your- android-layouts-to.html
基本上,如果您希望您的应用程序适合所有设备和平板电脑,那么以 dp 单位为一种尺寸定义布局是不够的,因为有四种不同的“密度桶”。
此工具将允许您的布局转换为从默认基线拟合这些密度桶。
希望能帮助到你。
你基本上需要四个。但是,如果您希望您的应用程序根据不同的屏幕尺寸 和 不同的方向表现不同,您应该使用:
/layout-port > for medium layout portrait
/layout-land > for medium layout landscape
/layout-xlarge-port > for xlarge layout portrait
/layout-xlarge-land > for xlarge layout landscape
等等
从您提供的链接:
By default, Android resizes your application layout to fit the current device screen.
In most cases, this works fine.
因此,一般规则是在布局 xml 中使用与密度无关的像素(倾角)来定义尺寸,其余部分由操作系统处理。这样做您就拥有适用于所有设备范围的唯一布局。
制作单独的布局并不是很常见的做法。只有当您有无法拉伸的图像时,这才是真正推荐的方式。在这种情况下,根据屏幕的大小和密度拆分图形无论如何都可以解决您的问题。
一种布局足以满足大密度的设备,如果您还想实现 x-large 屏幕尺寸的布局,那么您需要制作另一种布局,只需按照 ldpi 、 mpdi 和 hdpi 获取图像,将它们放置在相关文件夹中,使用适当的布局权重创建布局为背景提供完整大小,例如填充父级和按钮的确切大小
喜欢
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/bar"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight=".55"
android:gravity="left|center"
android:orientation="vertical" >
<Button
android:id="@+id/goBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="@drawable/back_btn" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight=".25"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Forget Paaword"
android:textColor="#ffffff"
android:textSize="18dp"
android:textStyle="italic" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight=".55"
android:gravity="right|center"
android:orientation="vertical" >
<Button
android:id="@+id/hombutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="@drawable/home1" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight=".2"
android:gravity="right|center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight=".5"
android:gravity="right|center"
android:orientation="horizontal" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:text="User Name"
android:textColor="#ffffff" />
<EditText
android:id="@+id/usernametext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight=".5" android:imeOptions="actionDone">
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight=".5"
android:gravity="right|center"
android:orientation="horizontal" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:text="Email Id"
android:textColor="#ffffff" />
<EditText
android:id="@+id/emailtextfp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:inputType="textEmailSubject" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight=".5"
android:gravity="center"
android:orientation="horizontal" >
<Button
android:id="@+id/loginbuttonfp"
android:layout_width="75dp"
android:layout_height="28dp"
android:layout_margin="5dp"
android:background="@drawable/btn" android:text="Ok" android:textColor="#ffffff"/>
<Button
android:id="@+id/cancelbutton"
android:layout_width="75dp"
android:layout_height="28dp"
android:layout_margin="5dp"
android:background="@drawable/btn" android:text="Cancel" android:textColor="#ffffff"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>