得到一个布局,以适应Android中的一些设备屏幕大小

时间:2015-08-21 14:41:52

标签: android android-layout gridview

我正在使用如下所示的布局。

问题

1 - 它在大多数设备上都能正常工作,但我无法在

上看到完整的布局
- Nexus 5, Sony Xperia Z1, and Galaxy S2 

在上述设备中,我只能看到Gridview网格。我看不到下面的EditText和Button。

2 - 布局已经有了gridview,所以我无法使用ScrollView在较小的屏幕设备中查看整个布局。因此,上述问题尚未解决。

3 - 我的GridView中有一个Imageview。当我尝试缩放Imageview时,它仍然会在Imageview上显示图像,即使我将缩放比例设置为CENTRE_INSIDE。

请帮助我将我的布局安装到较小的屏幕设备中,如Nexus 5,Samsung Galaxy S2,以及更大的屏幕设备,如Sony Xperia Z1。

请告诉我在布局xml文件中我做错了。

注意 - 要检查的重要块是Gridview块和最后一行Button的线性布局。

<?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" >
<include
    android:id="@+id/CustomTitle"
    layout="@layout/custom_title" />
<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/CustomTitle"
     >

    <RelativeLayout
        android:id="@+id/Title_RelativeLayout"
        android:layout_width="fill_parent"
        android:layout_below="@id/FavoritesViewRealtiveLayout"
        android:layout_height="wrap_content"
        android:layout_marginBottom="2dip"

        android:layout_marginTop="2dip" >

     <TextView
            android:id="@+id/device_detail"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"             
         android:layout_alignParentLeft="true"
         android:layout_centerHorizontal="true"
         android:text="@string/Fav_Edit_1"
         android:textColor="@android:color/white"
         android:textSize="17sp" />

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/device_detail"
        android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/radioButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"            

        android:text="Camera/Encoder" 
        android:checked="true" />

    <RadioButton
        android:id="@+id/radioButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:text="NVR/DVR" 
        />

  </RadioGroup>

    <TextView
                android:id="@+id/AddDevice_Name_Bar_TextView"
                android:layout_width="fill_parent"
                android:layout_height="0.1dip"
                android:layout_below="@+id/radioGroup1"
                android:background="#ffffff" />


    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/Date_RelativeLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/Title_RelativeLayout"
        >

        <TextView
            android:id="@+id/Layout_detail"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"             
         android:layout_alignParentLeft="true"
         android:layout_centerHorizontal="true"
         android:text="@string/Fav_Edit_2"
         android:textColor="@android:color/white"
         android:textSize="17sp" />

                   <Button
             android:id="@+id/division_4_Button"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignParentLeft="true"
             android:layout_marginLeft="5dp"
             android:layout_marginTop="10dp"
             android:layout_below="@+id/Layout_detail"
             android:background="@drawable/div4_layout_mode_selector"
             android:textColor="@drawable/textview_color_selector" />
         <Button
                android:id="@+id/division_9_Button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="50dip"
                android:layout_marginTop="10dp"
                android:layout_below="@+id/Layout_detail"
                android:layout_alignParentLeft="true"
                android:background="@drawable/div9_layout_mode_selector"
                android:textColor="@drawable/textview_color_selector" />


       <Button
                android:id="@+id/division_delete_Button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="50dip"
                android:layout_marginTop="10dp"
                android:layout_below="@+id/Layout_detail"
                android:layout_alignParentRight="true"
                android:layout_marginRight="5dp"
                android:background="@drawable/div_delete_selector"
                android:textColor="@drawable/textview_color_selector" />
    </RelativeLayout>

    <GridView
        android:id="@+id/Favorite_GridView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_below="@id/Date_RelativeLayout"
       android:verticalSpacing="10dp"
       android:horizontalSpacing="10dp"   
        android:listSelector="@drawable/gridview_norecode_selector"
        android:numColumns="3"            

      />
    <TextView
                android:id="@+id/AddDevice_Name_Bar_TextView"
                android:layout_width="fill_parent"
                android:layout_height="0.1dip"
                android:layout_marginTop="5dp"
                android:layout_below="@+id/Favorite_GridView"
                android:background="#ffffff" />

    <RelativeLayout
        android:id="@+id/Ti_RelativeLayout"
        android:layout_width="fill_parent"
        android:layout_below="@id/AddDevice_Name_Bar_TextView"
        android:layout_height="wrap_content"
        android:layout_marginBottom="2dip"            
        android:layout_marginTop="2dip" >

     <TextView
            android:id="@+id/device_detail"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"             
         android:layout_alignParentLeft="true"
         android:layout_centerHorizontal="true"
         android:text="@string/Fav_Edit_3"
         android:textColor="@android:color/white"
         android:textSize="17sp" />

  <EditText
                android:id="@+id/AddDevice_Name_EditText"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/device_detail"
                android:ellipsize="end"
                android:hint="@string/Fav_Edit_4"
                android:inputType="textUri"
                android:maxLength="100"
                android:singleLine="true"
                android:text="" />

     <LinearLayout
      android:id="@+id/Button_Layout"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"

      android:layout_marginTop="1dp"
      android:layout_below="@id/AddDevice_Name_EditText"
      android:background="@android:color/darker_gray"
      android:orientation="horizontal" >
    <Button
         android:id="@+id/AddDevice_Save_Btn"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_margin="5dip"
         android:layout_weight="1"
         android:text="@string/Save" />

</LinearLayout>

    </RelativeLayout>

</RelativeLayout>

我还附加了GridView xml文件

<?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/grid_color_selector" >
<ImageView
    android:id="@+id/image"
   android:layout_width="fill_parent"
    android:layout_height="wrap_content"      
   />   

<TextView
    android:id="@+id/Day_TextView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/gridview_line_norecord"
    android:gravity="center"
    android:textColor="@android:color/white"
    android:textSize="14sp"        
    android:text="Hello" />
</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

元素低于GridView存在根本问题。通常情况下,您无法控制进入GridView的元素数量,因此如果您使用wrap_content作为其高度,它将展开以适应所有项目。

在正常情况下,您会使用GridView,其高度为match_parent,固定(x dp)或按比例(加权 - 实际上可能仍为match_parent但包含在加权容器中)。

由于您必须在其下方显示项目,因此首选并非真正的选择。所以你可以选择其中一个选项。