2013-03-06 194 views
0

我正在开发一个应该支持多个屏幕的应用程序。对于正常的屏幕,我已将视图设置在视图缩放器中,因此我的图标不会拥挤。但是我想在大屏幕上进行的操作是将所有图标放在一个布局中,而不使用viewflipper来利用屏幕。Android确定屏幕尺寸

这里是我的正常屏幕布局:

<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> 

所以,我怎么能做到这一点在大屏幕?

感谢和regrads。

+1

现在是时候让你[学习碎片的喜悦](https://developer.android.com/guide/components/fragments.html) – FoamyGuy 2013-03-06 22:26:06

+0

@FoamyGuy它与2.3兼容吗? – 2013-03-07 11:53:47

+0

如果您使用应该与您的sdk一起出现的兼容性库(或通过sdk管理器下载它) – Raigex 2013-03-07 17:09:50

回答

2

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

而且编程,这取决于你是输出到你的Android的版本将使用

getResources().getConfiguration() 

,并使用该发现如果该设备的屏幕尺寸为

SCREENLAYOUT_SIZE_XLARGE 

为XLARGE屏幕(>7英寸) 或

SCREENLAYOUT_SIZE_LARGE 

大屏幕(下注ween 4英寸和7英寸) 第一个边界在HoneyComb(API 11+) 之前未定义,而第二个边界在某些设备上有问题。

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

+0

是的,我把它放在layout-xlarge文件夹中。但是我只有一个用于普通和大屏幕的java类。 – 2013-03-07 11:55:49

+0

你是否动态填充它们?或者您是否已经在预先准备的布局中使用了所有想要使用的按钮? – Raigex 2013-03-07 17:07:45