我正在开发一个应该支持多个屏幕的应用程序。对于普通屏幕,我已将我的布局设置在viewflipper中,因此我的图标不会拥挤。但我想在大屏幕上做的就是将所有图标放在一个布局中而不使用viewflipper来利用屏幕。
这是我正常屏幕的布局:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/lighterred"
android:layout_gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/logo"
android:layout_gravity="center"
android:text="@string/app_name"
android:textSize="30sp"
android:padding="15dp"
android:textStyle="bold"
android:textColor="@color/white"
android:contentDescription="@string/app_name" />
<ViewFlipper
android:id="@+id/mainFlipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:background="@color/white"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:gravity="center_vertical|center"
android:orientation="vertical" >
<TextView
android:id="@+id/tvMainNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="@string/slidetoleft" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/ibSymptoms"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:contentDescription="@string/app_name"
android:text="@string/symptoms"
android:textStyle="bold"
android:textColor="@color/black"
android:layout_margin="20dp"
android:background="@drawable/custom_button"
android:drawableTop="@drawable/symptoms" />
<Button
android:id="@+id/ibConditions"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:contentDescription="@string/app_name"
android:text="@string/conditions"
android:textStyle="bold"
android:layout_margin="20dp"
android:textColor="@color/black"
android:background="@drawable/custom_button"
android:drawableTop="@drawable/conditions" />
<Button
android:id="@+id/ibMedicalAssessment"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:contentDescription="@string/app_name"
android:text="@string/medicalassessment"
android:textStyle="bold"
android:textColor="@color/black"
android:layout_margin="20dp"
android:background="@drawable/custom_button"
android:drawableTop="@drawable/med_assessments" />
<Button
android:id="@+id/ibProfile"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:contentDescription="@string/app_name"
android:text="@string/profile"
android:textStyle="bold"
android:layout_margin="20dp"
android:textColor="@color/black"
android:background="@drawable/custom_button"
android:drawableTop="@drawable/profile" />
</LinearLayout> <!-- 2nd row -->
</LinearLayout>
<LinearLayout
android:background="@color/white"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_vertical|center" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/ibTests"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:contentDescription="@string/app_name"
android:text="@string/tests"
android:textStyle="bold"
android:layout_margin="20dp"
android:textColor="@color/black"
android:background="@drawable/custom_button"
android:drawableTop="@drawable/tests" />
<Button
android:id="@+id/ibTreatment"
android:layout_margin="20dp"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:contentDescription="@string/app_name"
android:text="@string/treatment"
android:textStyle="bold"
android:textColor="@color/black"
android:background="@drawable/custom_button"
android:drawableTop="@drawable/treatment" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/ibSpecialists"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:contentDescription="@string/app_name"
android:text="@string/specialists"
android:textStyle="bold"
android:layout_margin="20dp"
android:textColor="@color/black"
android:background="@drawable/custom_button"
android:drawableTop="@drawable/specialists" />
<Button
android:id="@+id/ibDisclaimer"
android:layout_margin="20dp"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:contentDescription="@string/app_name"
android:text="@string/about"
android:textStyle="bold"
android:textColor="@color/black"
android:background="@drawable/custom_button"
android:drawableTop="@drawable/disclaimer" />
</LinearLayout>
</LinearLayout>
</ViewFlipper>
</LinearLayout>
那我怎么能在大屏幕上做到呢?
谢谢并重新认识。
答案 0 :(得分:2)
最好使用常规的xml文件并将它们放在正确的文件夹中(例如layout-xlarge),然后你就可以使用更小尺寸的布局和更大尺寸的布局。
另外,以编程方式取决于您输出的Android版本将使用
getResources().getConfiguration()
并使用该查找设备屏幕大小
SCREENLAYOUT_SIZE_XLARGE
用于xlarge屏幕(&gt; 7英寸) 或
SCREENLAYOUT_SIZE_LARGE
用于大屏幕(4英寸到7英寸之间) 在HoneyComb(API 11+)之前没有定义第一个边界 而第二界限在某些设备上存在问题。
编辑: 我同意FoamyGuy片段会更好,特别是因为你可以专门控制每个片段逻辑(例如,为大屏幕创建一个布局,并为小屏幕片段创建一个布局(如果你想使用一个视图鳍状肢)或者只是像片段文档中所示,开始一个新片段,如新活动。