【发布时间】:2013-12-19 05:14:00
【问题描述】:
我是否可以使用特定的限定词来做出不同的 专门针对 Nexus 5 的布局?
我正在将 layout-xhdpi 用于 Galaxy S4(我已检查具有物理键的 S4 Active)和 Note 2 等设备,我不想在那里更改任何内容.
编辑#2 S4 和 Nexus 5 之间差异的原因,不考虑布局不是最佳的事实,是因为有效屏幕尺寸不像 Galaxy S4 (1920) 而是更小 - 1776,因为软键。
编辑#3 这是只有一个相对布局的新布局:(问题是 android:id="@+id/nextlevel" 位于 android:id="@+id/banner_adview ")
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/endlevel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginBottom="13dp"
android:background="@drawable/header"
android:gravity="center"
android:paddingBottom="1dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="1dp"
android:textColor="#ecf0f1"
android:textSize="20sp"
android:textStyle="normal" >
</TextView>
<TextView
android:id="@+id/congratulations"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/endlevel"
android:layout_centerHorizontal="true"
android:layout_marginBottom="7dp"
android:gravity="center"
android:text="@string/congratulations"
android:textColor="#ecf0f1"
android:textSize="19sp"
android:textStyle="bold" >
</TextView>
<ImageView
android:id="@+id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/congratulations"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:layout_marginTop="7dp"
android:background="@drawable/levelendresultbg" />
<TextView
android:id="@+id/pointstext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/congratulations"
android:layout_marginTop="11dp"
android:gravity="center"
android:textColor="#ecf0f1"
android:textSize="17sp"
android:textStyle="bold" >
</TextView>
<ImageView
android:id="@+id/divider"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/pointstext"
android:layout_centerHorizontal="true"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:src="@drawable/divider" />
<TextView
android:id="@+id/totalpointstext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/divider"
android:layout_marginBottom="4dp"
android:gravity="center"
android:textColor="#e1c736"
android:textSize="17sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/award"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/endlevel"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@id/congratulations"
android:src="@drawable/award" />
<TextView
android:id="@+id/topborder"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/totalpointstext"
android:layout_marginTop="13dp"
android:background="@drawable/border"
android:gravity="left"
android:paddingLeft="10dp"
android:textColor="#ecf0f1"
android:textSize="17sp"
android:textStyle="bold" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="280dp"
android:layout_below="@id/topborder"
android:background="@color/transparent"
android:cacheColorHint="#00000000"
android:fadeScrollbars="false" />
<TextView
android:id="@+id/bottomborder"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@android:id/list"
android:background="@drawable/border"
android:gravity="center" />
<ImageButton
android:id="@+id/nextlevel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/bottomborder"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:background="@drawable/nextlevelbutton"
android:textSize="20sp" />
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/banner_adview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
ads:adSize="BANNER"
ads:adUnitId="XXXXXXXXXXXX"
ads:loadAdOnCreate="true"
android:background="@drawable/adback" />
</RelativeLayout>
谢谢!
【问题讨论】:
-
如果您正在考虑特定于设备的布局,您应该真正考虑查看您是如何构建布局的。而是专注于构建可扩展的布局,使用
RelativeLayout或LinearLayout等布局进行扩展 -
这是我唯一遇到问题的设备。大多数布局都是相对的,并且都使用 dp/sp 测量值。
-
我现在想到一件事,if(isNexus5) setContentView(R.layout.name_nexus_5) else setContentView(R.layout.name)
-
那你为什么不发布你的布局和一些你遇到的问题的截图呢?不知何故,其他人能够为所有这些设备使用相同的布局。
-
@ianhanniballake 我已将信息添加到原始问题中。发送!