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