Android 不同屏幕尺寸的计算器用户界面
我是android新手。我正在做计算器,但我面临一个问题。在android studio中,UI看起来不错,但当我在Nexus 6(虚拟设备)上运行它时,它看起来不支持不同的屏幕大小。我了解到DP(设备独立像素)默认情况下适合每个屏幕大小的元素,但在这种情况下,它不起作用。我现在应该做什么来支持每个设备?我附上用户界面代码和图片以了解更多信息 这是XML布局文件。我使用相对布局作为父布局,内部相对布局使用多个线性布局Android 不同屏幕尺寸的计算器用户界面,android,Android,我是android新手。我正在做计算器,但我面临一个问题。在android studio中,UI看起来不错,但当我在Nexus 6(虚拟设备)上运行它时,它看起来不支持不同的屏幕大小。我了解到DP(设备独立像素)默认情况下适合每个屏幕大小的元素,但在这种情况下,它不起作用。我现在应该做什么来支持每个设备?我附上用户界面代码和图片以了解更多信息 这是XML布局文件。我使用相对布局作为父布局,内部相对布局使用多个线性布局 <LinearLayout android:id="@+id
<LinearLayout
android:id="@+id/linearLayoutText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/txtResult"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="serif-monospace"
android:gravity="right"
android:textColor="@color/cyan"
android:textSize="@dimen/txtResultTextSize" />
<TextView
android:id="@+id/txtOperation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="monospace"
android:gravity="right"
android:padding="@dimen/txtOperationPadding"
android:textColor="@color/cyan"
android:textSize="@dimen/txtOperationTextSize" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayoutBtnDecimals"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/linearLayoutText"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/marginBottom"
android:orientation="horizontal">
<Button
android:id="@+id/btnFactorial"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="!"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnDel"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="«"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnC"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="C"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/marginBottom"
android:orientation="horizontal">
<Button
android:id="@+id/btnSqrRoot"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="√"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnForwardBracket"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="("
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnBackwardBracket"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text=")"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/marginBottom"
android:orientation="horizontal">
<Button
android:id="@+id/btn7"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="7"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btn8"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="8"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btn9"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="9"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/marginBottom"
android:orientation="horizontal">
<Button
android:id="@+id/btn4"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="4"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btn5"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="5"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btn6"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="6"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/marginBottom"
android:orientation="horizontal">
<Button
android:id="@+id/btn1"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="1"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btn2"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="2"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btn3"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="3"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn0"
android:layout_width="@dimen/btn0Width"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="0"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnDot"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="."
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignBaseline="@+id/linearLayoutBtnDecimals"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/linearLayoutText"
android:layout_toEndOf="@+id/linearLayoutBtnDecimals"
android:layout_toLeftOf="@+id/linearLayoutBtnDecimals"
android:orientation="vertical">
<Button
android:id="@+id/btnDiv"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginBottom="@dimen/marginBottom"
android:background="@color/dark"
android:fontFamily="monospace"
android:text="÷"
android:textColor="@color/cyan"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnMul"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginBottom="@dimen/marginBottom"
android:background="@color/dark"
android:fontFamily="monospace"
android:text="×"
android:textColor="@color/cyan"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnMinus"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginBottom="@dimen/marginBottom"
android:background="@color/dark"
android:fontFamily="monospace"
android:text="-"
android:textColor="@color/cyan"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnPlus"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginBottom="@dimen/marginBottom"
android:background="@color/dark"
android:fontFamily="monospace"
android:text="+"
android:textColor="@color/cyan"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnEqual"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnEqualHeight"
android:layout_marginBottom="@dimen/marginBottom"
android:background="@color/dark"
android:fontFamily="monospace"
android:text="="
android:textColor="@color/cyan"
android:textSize="@dimen/btnTextSize" />
</LinearLayout>
这是dimens.xml文件
<dimen name="btnWidth">95dp</dimen>
<dimen name="btnHeight">62dp</dimen>
<dimen name="btn0Width">191dp</dimen>
<dimen name="btnMarginRight">1dp</dimen>
<dimen name="btnTextSize">40sp</dimen>
<dimen name="btnEqualHeight">125dp</dimen>
<dimen name="marginBottom">1sp</dimen>
<dimen name="txtResultTextSize">80sp</dimen>
<dimen name="txtOperationTextSize">30sp</dimen>
<dimen name="txtOperationPadding">5dp</dimen>
95dp
62dp
191dp
1dp
40便士
125dp
1sp
80便士
30便士
5dp
那么,我现在应该做什么来设置每个屏幕大小设备的布局呢?
提前感谢。更好地使用。对于不同的屏幕类型,您也可以考虑不同的<强> DIME.XML(可以通过创建新的DimeSS.xml文件,其中包含“强>屏幕密度< /强> &强>屏幕大小< /强>),这将应用于相应类型的屏幕
例如:
不要将布局高度匹配父级到父级布局以外的内部布局,而不是在dp中指定固定大小,您可以对子视图(按钮、文本视图等)使用换行内容。也可以使用权重和
<LinearLayout
android:id="@+id/linearLayoutBtnDecimals"
android:layout_width="wrap_content"
android:layout_height="**wrap_content**"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/linearLayoutText"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/marginBottom"
android:orientation="horizontal">
<Button
android:id="@+id/btnFactorial"
android:layout_width="@dimen/btnWidth"
android:layout_height="@dimen/btnHeight"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="!"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnDel"
android:layout_width="**wrap_content**"
android:layout_height="**wrap_content**"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="«"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
<Button
android:id="@+id/btnC"
android:layout_width="**wrap_content**"
android:layout_height="**wrap_content**"
android:layout_marginRight="@dimen/btnMarginRight"
android:background="@color/darkGrey1"
android:fontFamily="monospace"
android:text="C"
android:textColor="@color/lightGrey4"
android:textSize="@dimen/btnTextSize" />
</LinearLayout>
如果用户界面使用固定大小,则必须根据屏幕大小创建不同的dimen文件夹。另一个选项是,您可以使用weightSum相应地布局和管理视图(UI中的按钮)。使用weightSum是最佳选项。简化设计:将按钮放在GridView或GridLayout中。对结果感到满意。检查此项可能会有帮助