我开发了一个 Android 应用程序,但有时用户调用我并告诉我布局对于他们的设备不正确。原因是android运行在不同屏幕尺寸和密度的设备上。我尝试涵盖所有类型,但是当我纠正某些内容时,其他内容就会变得不正确。该死!有没有一种方法可以使用一个可绘制文件夹创建一个布局,并使用某些东西来根据不同的屏幕尺寸缩放布局?谢谢你!! 这是我的主要 xml 布局的示例:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent" android:background="@drawable/sfondo">
<LinearLayout android:id="@+id/linearLayout2"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:orientation="vertical">
<LinearLayout android:id="@+id/linearLayout1"
android:layout_height="fill_parent" android:weightSum="1"
android:layout_width="fill_parent" android:orientation="horizontal">
<ImageView android:layout_height="wrap_content" android:id="@+id/imageView1"
android:src="@drawable/trovachiavi_contatti" android:layout_width="wrap_content"
android:layout_marginTop="15dp" android:layout_marginLeft="20dp"></ImageView>
<ImageButton android:id="@+id/infoButton"
android:background="@null" android:layout_height="47dp"
android:layout_marginLeft="5dip" android:layout_weight="0.25"
android:layout_marginTop="15dip" android:src="@drawable/info_mini"
android:layout_width="47dp">
</ImageButton>
</LinearLayout>
</LinearLayout>
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/layoutGif"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<trova.chiavi.sd.GIFView
android:layout_gravity="center"
android:layout_height="220dp" android:layout_width="210dp" android:id="@+id/GIFSingle"
android:layout_marginLeft="40dp"></trova.chiavi.sd.GIFView>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutBanner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="vertical"
>
<TextView
android:id="@+id/testoBanner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:layout_gravity="center"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_marginTop="10dp"
android:textColor="@android:color/black"
android:maxLines="2"/>
<ImageView
android:id="@+id/Banner"
android:layout_width="match_parent"
android:layout_height="144dp"
android:layout_gravity="center"
android:src="@drawable/box_codice"
android:layout_marginTop="5dp"
/>
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="1dp">
<ImageButton
android:id="@+id/avvia_cerca"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/chiave"
android:layout_gravity="center"/>
<TextView
android:id="@+id/testoRicercaSingle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/black"
android:layout_gravity="center"/>
</LinearLayout>
</LinearLayout>
最佳答案
简短的回答是肯定的:我建议从这里开始:http://developer.android.com/training/multiscreen/index.html
特别是,在“支持不同的屏幕尺寸”页面下,请注意以下内容:
By using the "wrap_content" and "match_parent" size values instead of hard-coded sizes, your views either use only the space required for that view or expand to fill the available space, respectively.
需要一点时间来适应其中的逻辑,但一旦习惯了,效果会非常好。
关于android - Android中如何缩放布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9166624/