布局设计响应所有设备

时间:2016-01-26 03:46:39

标签: android android-layout android-studio screen android-view

我正在尝试设计一种可以响应所有设备的布局。我设计了硬编码。任何人都可以建议我如何使其响应所有设备(所有设备的分辨率不同)?

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/place_details_bg_baunia"
    android:orientation="vertical"
    tools:context=".activity.PlaceDetailsActivity"
    android:id="@+id/place_details_layout">

    <ScrollView
        android:id="@+id/svCategoryListHolder"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="@color/semi_transparent">

        <LinearLayout
            android:id="@+id/llCategoryListHolder"
            android:layout_width="75dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="30dp"
            android:gravity="center"
            android:orientation="vertical"
            android:focusableInTouchMode="true">

            <!--Java is used to put category items inside here-->
            <!--<ImageView
                android:id="@+id/ivEduCatListPlaceDetails"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ico_edu"/>
            <ImageView
                android:id="@+id/ivHealthCatListPlaceDetails"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ico_health"/>
            <ImageView
                android:id="@+id/ivGovtCatListPlaceDetails"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ico_govt"/>
            <ImageView
                android:id="@+id/ivLawCatListPlaceDetails"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ico_law"/>
            <ImageView
                android:id="@+id/ivMoneyCatListPlaceDetails"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ico_money"/>
            <ImageView
                android:id="@+id/ivJobCatListPlaceDetails"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ico_job"/>
            <ImageView
                android:id="@+id/ivFunCatListPlaceDetails"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ico_fun"/>-->
        </LinearLayout>
    </ScrollView>

    <!--<LinearLayout
        android:id="@+id/llCategoryListHolder"
        android:layout_width="75dp"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@color/semi_transparent">
    </LinearLayout>-->
    <RelativeLayout
        android:id="@+id/rlSubCatHolder"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="0dp">

        <LinearLayout
            android:id="@+id/llSubCatListHeadIconHolder"
            android:layout_width="75dp"
            android:layout_height="120dp"
            android:background="@color/black"
            android:orientation="vertical"
            android:visibility="visible">

            <ImageView
                android:id="@+id/ivHeadCatIconSubCatList"
                android:layout_width="75dp"
                android:layout_height="75dp"
                android:background="@color/black"
                android:contentDescription="@string/txt_cd_header_icon_ofcat_subcatlist"
                android:padding="7dp" />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:textColor="#FFFFFF"
                tools:ignore="HardcodedText"
                android:gravity="center_vertical|center_horizontal"
                android:id="@+id/tv_cat_name" />
        </LinearLayout>

        <HorizontalScrollView
            android:id="@+id/svSubCategoryListHolder"
            android:layout_width="match_parent"
            android:layout_height="108dp"
            android:layout_marginTop="0dp"
            android:layout_toEndOf="@+id/llSubCatListHeadIconHolder"
            android:layout_toRightOf="@+id/llSubCatListHeadIconHolder"
            android:background="@color/semi_transparent"
            android:visibility="visible">
            <ScrollView

                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <LinearLayout
                    android:id="@+id/llSubCatListHolder"
                    android:layout_width="match_parent"
                    android:layout_height="108dp"

                    android:layout_toEndOf="@+id/llSubCatListHeadIconHolder"
                    android:layout_toRightOf="@+id/llSubCatListHeadIconHolder"
                    android:orientation="horizontal"
                    android:padding="0dp" />
            </ScrollView>
        </HorizontalScrollView>



        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/svSubCategoryListHolder"
            android:layout_marginLeft="7dp"
            android:layout_marginRight="7dp"
            android:layout_toEndOf="@+id/llSubCatListHeadIconHolder"
            android:layout_toRightOf="@+id/llSubCatListHeadIconHolder"
            android:background="@color/white"
            android:orientation="vertical"
            android:visibility="visible"
            android:id="@+id/llItemListHolder">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="স্কুল এর নাম"
                android:id="@+id/tv_sub_cat_item_list_head"
                android:padding="7dp"
                android:gravity="center_vertical|center_horizontal"
                android:textColor="#000000"
                android:background="@color/yellow"
                android:textSize="20sp"
                android:visibility="gone" />

            <ListView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/sub_cat_item_list"
                android:visibility="gone"
                android:layout_marginTop="5dp" />

            <ExpandableListView
                android:id="@+id/listView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >
            </ExpandableListView>
            <TextView
                android:id="@+id/tvInstructionSubCat"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:padding="7dp"
                android:visibility="visible"
                android:text="@string/txt_sub_cat_inst"
                android:textColor="@color/red"/>

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="10dp"
                android:text="@string/txt_inst_sub_cat_choose"
                android:id="@+id/btn_show_sub_cat_list_item"
                android:background="@color/gray"
                android:padding="3dp" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="ম্যাপ এ দেখেন"
                android:id="@+id/btn_see_map"
                android:background="@drawable/pullup_map"
                android:layout_gravity="center_horizontal"
                android:visibility="gone" />

        </LinearLayout>

        <FrameLayout
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_alignParentBottom="true"
            android:id="@+id/map_fragment"
            android:layout_below="@+id/llItemListHolder"
            android:layout_alignRight="@+id/llItemListHolder"
            android:layout_alignEnd="@+id/llItemListHolder"
            android:layout_toEndOf="@+id/llSubCatListHeadIconHolder"
            android:layout_marginTop="6dp"
            android:layout_marginBottom="6dp"
            android:layout_toRightOf="@+id/llSubCatListHeadIconHolder"></FrameLayout>
    </RelativeLayout>

</FrameLayout>

1 个答案:

答案 0 :(得分:1)

没有,你的xml文件中有硬编码,所有设备都有不同的尺寸,字体,填充,边距,图像和所有这些东西

你必须制作不同的布局文件,你必须提到不同的文字,尺寸,填充等大小。

所以,我建议你参考这个答案Layout design support for all devices

  

布局 - 适用于最小宽度低于600dp的所有设备(例如   480×800 dp)

     

layout-sw600dp - 适用于最小宽度超过600dp的所有设备(适用于   实例1024×600 dp)

     

layout-sw720dp - 适用于最小宽度超过720dp的所有设备(适用于   实例1280×800 dp)

Official documentation Supporting Multiple Screens.