【问题标题】:button size are different in emulator from real device模拟器中的按钮大小与真实设备不同
【发布时间】:2016-08-16 07:18:39
【问题描述】:

我是一个初学者,我在gridLayout上创建了8个按钮。按钮的大小不同这里是一个xml代码:

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="0"
        android:layout_gravity="fill"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="Hello"
        android:id="@+id/hello"
        android:onClick="buttonTapped"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="0"
        android:layout_gravity="fill"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="How are you"
        android:id="@+id/howareyou"
        android:onClick="buttonTapped"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="1"
        android:layout_gravity="fill"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="good evening"
        android:id="@+id/goodevening"
        android:onClick="buttonTapped"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="1"
        android:layout_gravity="fill"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="please"
        android:id="@+id/please"
        android:onClick="buttonTapped"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="2"
        android:layout_gravity="fill"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="my name is"
        android:id="@+id/mynameis"
        android:onClick="buttonTapped"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="2"
        android:layout_gravity="fill"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="do you &#10;speak english"
        android:id="@+id/doyouspeakenglish"
        android:onClick="buttonTapped"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="3"
        android:layout_gravity="fill"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="welcome"
        android:id="@+id/welcome"
        android:onClick="buttonTapped"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="3"
        android:layout_gravity="fill"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="i live in"
        android:id="@+id/ilivein"
        android:onClick="buttonTapped"/>

</GridLayout>

这是 Lg g3 上的截图 real device Lg g3

这是模拟器上的截图emulator

有什么问题?

【问题讨论】:

  • 你的模拟器和设备屏幕不同,这就是为什么按钮大小会改变@future2020
  • 他们看起来更大。
  • 您使用的大多数属性都是针对 API 21+ 引入的,因此存在差异。如果您更改设备的 android 版本,您甚至可以在布局编辑器中看到它
  • 尝试在线性布局和重量中使用文本视图,而不是在所有设备中获得精确设计
  • @DaminiMehra 我知道有不同,这就是我使用重量的原因。

标签: android xml button grid-layout


【解决方案1】:

试试LinearLayoutweightsum

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="4"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:weightSum="2"
        android:padding="5dp"
        >

        <Button

            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="Hello"
            android:id="@+id/hello"
            android:layout_marginRight="5dp"
            android:layout_marginTop="6dp"
            android:layout_marginBottom="3dp"
            android:onClick="buttonTapped"
            />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="How are you"
            android:id="@+id/howareyou"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="6dp"
            android:layout_marginBottom="3dp"
            android:onClick="buttonTapped"
            />
   </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:weightSum="2"
        android:padding="5dp"
        >

        <Button

            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="good evening"
            android:id="@+id/goodevening"
            android:layout_marginRight="5dp"
            android:layout_marginTop="3dp"
            android:layout_marginBottom="3dp"
            android:onClick="buttonTapped"
            />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="please"
            android:id="@+id/please"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="3dp"
            android:layout_marginBottom="3dp"
            android:onClick="buttonTapped"
            />



    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:weightSum="2"
        android:padding="5dp"
        >

        <Button

            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="my name is"
            android:id="@+id/mynameis"
            android:layout_marginRight="5dp"
            android:layout_marginTop="3dp"
            android:layout_marginBottom="3dp"
            android:onClick="buttonTapped"
            />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="do you &#10;speak english"
            android:id="@+id/doyouspeakenglish"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="3dp"
            android:layout_marginBottom="3dp"
            android:onClick="buttonTapped"
            />



    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:weightSum="2"
        android:padding="5dp"
        >

        <Button

            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="welcome"
            android:id="@+id/welcome"
            android:layout_marginRight="5dp"
            android:layout_marginTop="3dp"
            android:layout_marginBottom="6dp"
            android:onClick="buttonTapped"
            />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="Hello"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="3dp"
            android:layout_marginBottom="6dp"
            android:onClick="buttonTapped"
            />
 </LinearLayout>
</LinearLayout>

【讨论】:

    【解决方案2】:

    对于各种分辨率示例,您应该在尺寸文件中修复按钮的高度和宽度:

    值文件夹:

     <dimen name="width">90dp</dimen>
          <dimen name="height">75dp</dimen>
    

    values-hdpi 文件夹:

            <dimen name="width">100dp</dimen>
            <dimen name="height">85dp</dimen>
    

    像这样对 mdpi,,xhdpi,xxhdpi 执行此操作并将其放入您的按钮中。

     android:layout_width="@dimen/width"
           android:layout_height="@dimen/height"
    

    【讨论】:

      猜你喜欢
      • 2010-11-10
      • 1970-01-01
      • 2022-12-11
      • 2015-10-18
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      • 2011-12-14
      相关资源
      最近更新 更多