Android 多屏
Android Multiple Screen
我在 android 中遇到多屏幕问题。
在我阅读此网页后:
https://developer.android.com/guide/practices/screens_support.html
developer.android.com/training/multiscreen/screensizes.html
我尝试通过添加最小屏幕宽度布局目录将我的 activity 更改为多屏幕布局:
layout-sw320dp
layout-sw320dp-land
layout-sw480dp
layout-sw480dp-land
layout-sw600dp
layout-sw600dp-land
layout-sw720dp
layout-sw720dp-land
我的 activity :
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background"
tools:context="com.example.aref.calculator.MainActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lin"
android:orientation="vertical">
<EditText
android:id="@+id/etInput"
android:layout_height="163dp"
android:background="@android:color/transparent"
android:cursorVisible="false"
android:gravity="end|center"
android:hint="@string/zero"
android:inputType="numberSigned"
android:padding="16dp"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textCursorDrawable="@null"
android:textSize="50sp"
android:layout_width="match_parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="2dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnMc"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:background="@drawable/btn_selector"
android:text="@string/mc" />
<Button
android:id="@+id/btnMemory"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector"
android:text="@string/nullMemory" />
<Button
android:id="@+id/btnSeven"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/seven" />
<Button
android:id="@+id/btnFour"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/four" />
<Button
android:id="@+id/btnOne"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/one" />
<Button
android:id="@+id/btnZero"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/zero" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnMPlus"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:background="@drawable/btn_selector"
android:text="@string/mPlus" />
<Button
android:id="@+id/btnClear"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector1"
android:text="@string/clear" />
<Button
android:id="@+id/btnEight"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/eight" />
<Button
android:id="@+id/btnFive"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/five" />
<Button
android:id="@+id/btnTwo"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/two" />
<Button
android:id="@+id/btnPoint"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector1"
android:text="@string/point" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnMMinus"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:background="@drawable/btn_selector"
android:text="@string/mMinus" />
<Button
android:id="@+id/btnAllClear"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector1"
android:text="@string/AllClear" />
<Button
android:id="@+id/btnNine"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/nine" />
<Button
android:id="@+id/btnSix"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/six" />
<Button
android:id="@+id/btnThree"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/three" />
<Button
android:id="@+id/btnEqual"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector1"
android:text="@string/equal" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnMr"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:background="@drawable/btn_selector"
android:text="@string/mr" />
<Button
android:id="@+id/btnMod"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector3"
android:text="@string/mod" />
<Button
android:id="@+id/btnDiv"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector3"
android:text="@string/div" />
<Button
android:id="@+id/btnMul"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector3"
android:text="@string/mul" />
<Button
android:id="@+id/btnPlus"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector3"
android:text="@string/plus" />
<Button
android:id="@+id/btnMin"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector3"
android:text="@string/minus" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
例如我的问题是 "layout-sw320dp" 当我将设备更改为例如 nexus 4 或 nexus 的布局变得不合适时,我设计了 nexus 5x 的布局
您正在设置固定宽度的按钮。这永远不会跨设备运行良好。使用另一种技术。例如,如果您想要 4 个大小相同的按钮,将每一行放置为线性布局,并为它们分配所有 0dp 宽度和 1 权重,这样它们就会变得同样大。
您创建线性布局并使用 weightsum 。因此您可以在多个屏幕中使用
我在 android 中遇到多屏幕问题。
在我阅读此网页后:
https://developer.android.com/guide/practices/screens_support.html developer.android.com/training/multiscreen/screensizes.html
我尝试通过添加最小屏幕宽度布局目录将我的 activity 更改为多屏幕布局:
layout-sw320dp
layout-sw320dp-land
layout-sw480dp
layout-sw480dp-land
layout-sw600dp
layout-sw600dp-land
layout-sw720dp
layout-sw720dp-land
我的 activity :
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background"
tools:context="com.example.aref.calculator.MainActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lin"
android:orientation="vertical">
<EditText
android:id="@+id/etInput"
android:layout_height="163dp"
android:background="@android:color/transparent"
android:cursorVisible="false"
android:gravity="end|center"
android:hint="@string/zero"
android:inputType="numberSigned"
android:padding="16dp"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textCursorDrawable="@null"
android:textSize="50sp"
android:layout_width="match_parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="2dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnMc"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:background="@drawable/btn_selector"
android:text="@string/mc" />
<Button
android:id="@+id/btnMemory"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector"
android:text="@string/nullMemory" />
<Button
android:id="@+id/btnSeven"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/seven" />
<Button
android:id="@+id/btnFour"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/four" />
<Button
android:id="@+id/btnOne"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/one" />
<Button
android:id="@+id/btnZero"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/zero" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnMPlus"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:background="@drawable/btn_selector"
android:text="@string/mPlus" />
<Button
android:id="@+id/btnClear"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector1"
android:text="@string/clear" />
<Button
android:id="@+id/btnEight"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/eight" />
<Button
android:id="@+id/btnFive"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/five" />
<Button
android:id="@+id/btnTwo"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/two" />
<Button
android:id="@+id/btnPoint"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector1"
android:text="@string/point" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnMMinus"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:background="@drawable/btn_selector"
android:text="@string/mMinus" />
<Button
android:id="@+id/btnAllClear"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector1"
android:text="@string/AllClear" />
<Button
android:id="@+id/btnNine"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/nine" />
<Button
android:id="@+id/btnSix"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/six" />
<Button
android:id="@+id/btnThree"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector2"
android:text="@string/three" />
<Button
android:id="@+id/btnEqual"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector1"
android:text="@string/equal" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnMr"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:background="@drawable/btn_selector"
android:text="@string/mr" />
<Button
android:id="@+id/btnMod"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector3"
android:text="@string/mod" />
<Button
android:id="@+id/btnDiv"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector3"
android:text="@string/div" />
<Button
android:id="@+id/btnMul"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector3"
android:text="@string/mul" />
<Button
android:id="@+id/btnPlus"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector3"
android:text="@string/plus" />
<Button
android:id="@+id/btnMin"
android:layout_width="@dimen/btn_width_small"
android:layout_height="@dimen/btn_height_small"
android:layout_marginLeft="@dimen/btn_marginLeft_marginStart"
android:layout_marginStart="@dimen/btn_marginLeft_marginStart"
android:layout_marginTop="@dimen/btn_margin_top"
android:background="@drawable/btn_selector3"
android:text="@string/minus" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
例如我的问题是 "layout-sw320dp" 当我将设备更改为例如 nexus 4 或 nexus 的布局变得不合适时,我设计了 nexus 5x 的布局
您正在设置固定宽度的按钮。这永远不会跨设备运行良好。使用另一种技术。例如,如果您想要 4 个大小相同的按钮,将每一行放置为线性布局,并为它们分配所有 0dp 宽度和 1 权重,这样它们就会变得同样大。
您创建线性布局并使用 weightsum 。因此您可以在多个屏幕中使用