[英]Android multi-screen layout support doesn't work
我試圖在Android應用程序上實現多屏支持,所以我提供了幾個布局文件夾“ layout-sw480dp”,“ layout-sw600dp”,“ layout-sw720dp”和相同的命名xml文件。 我使用720dp布局作為主要布局,在10.1英寸平板電腦上,一切看起來都不錯,但是4.3英寸手機無法加載相應的布局。 我讀了很多文章和不同的問題,但仍然找不到解決方案。 誰能幫我解決這個問題?
默認xml布局示例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/blackboard"
android:orientation="vertical" >
<TextView
android:id="@+id/welcomeTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="40dp"
android:text="@string/welcomeLabel"
android:textColor="@color/white"
android:textSize="56sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginLeft="55dp"
android:layout_marginTop="30dp"
android:weightSum="100" >
<TextView
android:id="@+id/nameLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:text="@string/nameLabel"
android:textColor="@color/white"
android:textSize="26sp" />
<EditText
android:id="@+id/nameEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="20"
android:background="@color/white"
android:textColor="@color/blue"
android:textSize="26sp" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="55dp"
android:paddingTop="20dp"
android:weightSum="100" >
<TextView
android:id="@+id/eqNumberLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:text="@string/eqNumberLabel"
android:textColor="@color/white"
android:textSize="26sp" />
<EditText
android:id="@+id/eqNumberEditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="10"
android:background="@color/white"
android:inputType="number"
android:textColor="@color/blue"
android:textSize="26sp" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp">
<CheckBox
android:id="@+id/reducedCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="55dp"
android:layout_marginRight="10dp"
android:button="@drawable/checkbox"
android:layout_gravity="center" >
</CheckBox>
<TextView
android:id="@+id/reducedLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/reducedLabel"
android:textColor="@color/white"
android:textSize="36sp" />
</LinearLayout>
<Button
android:background="@drawable/begin_button"
android:layout_marginTop="20dp"
android:id="@+id/beginButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:enabled="false"
android:text="@string/beginButton"
android:textColor="@color/black"
android:textSize="36sp"/>
我有同樣的問題。 現在,我只是在onCreate,onConfigurationChanged和其他時候在代碼中調整布局的大小。 這適用於任何尺寸的屏幕。 以下代碼為設備提供了實際像素。 您可以提供默認的xml嗎?
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
final float width = dm.widthPixels;
final float height = dm.heightPixels;
根據平板電腦的大小和分辨率,將平板電腦的資源保存在不同的文件夾中:drawable-large:對於7'平板電腦drawable-xlarge:對於10'平板電腦以支持電話,請使用以下文件夾:drawable-mdpi drawable-hdpi drawable-xhdpi drawable- xxhdpi
PS:屏幕尺寸和分辨率存在差異。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.