Android确定屏幕尺寸

时间:2013-03-06 22:17:26

标签: android

我正在开发一个应该支持多个屏幕的应用程序。对于普通屏幕,我已将我的布局设置在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>

那我怎么能在大屏幕上做到呢?

谢谢并重新认识。

1 个答案:

答案 0 :(得分:2)

最好使用常规的xml文件并将它们放在正确的文件夹中(例如layout-xlarge),然后你就可以使用更小尺寸的布局和更大尺寸的布局。

另外,以编程方式取决于您输出的Android版本将使用

getResources().getConfiguration()

并使用该查找设备屏幕大小

SCREENLAYOUT_SIZE_XLARGE

用于xlarge屏幕(&gt; 7英寸) 或

SCREENLAYOUT_SIZE_LARGE

用于大屏幕(4英寸到7英寸之间) 在HoneyComb(API 11+)之前没有定义第一个边界 而第二界限在某些设备上存在问题。

编辑: 我同意FoamyGuy片段会更好,特别是因为你可以专门控制每个片段逻辑(例如,为大屏幕创建一个布局,并为小屏幕片段创建一个布局(如果你想使用一个视图鳍状肢)或者只是像片段文档中所示,开始一个新片段,如新活动。