为什么按钮高度因设备而异

时间:2016-05-11 08:33:52

标签: android android-layout android-button

我有一个按钮编码如下

        <Button
            android:id="@+id/btn_register"
            style="@style/MyButtonStyle"
            android:layout_width="20dp"
            android:layout_height="10dp"
            android:text="@string/word_text" />

我的风格如下。

<style name="MyButtonStyle" >
    <item name="android:textColor">@color/colorWhite</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:textSize">@dimen/text_size_medium_small</item>
    <item name="android:stateListAnimator">@null</item>
    <item name="android:elevation">@dimen/elevation_standard</item>
    <item name="android:backgroundTint">@color/colorPrimary</item>
</style>

如果我在Nexus 5 Android M上查看,该按钮会消失,没有任何高度。如果我查看Samsung S7 Android M,它会显示10dp的高度。

如果我的身高超过10dp或者wrap_content,那么三星S7会显示比Nexus 5更厚的按钮。出现这种情况的原因是什么?我怎样才能使高度保持一致?

2 个答案:

答案 0 :(得分:0)

仿真器和硬件设备有时会产生不同的结果。如果您使用模拟器对其进行测试,请尝试使用硬件设备。屏幕尺寸也很重要。

http://developer.android.com/guide/practices/screens_support.html

Android开发人员论坛上有一篇关于不同屏幕大小的文章,并支持每个。

答案 1 :(得分:0)

我遇到了同样的问题。我的应用程序的UI元素在三星S7上看起来很大,但是在所有其他设备上,视图是一致的物理尺寸(这是我所期望的 - 不是密度独立像素的整点吗?)。

我认为这与三星S7的Quad HD分辨率有关,导致一切看起来都比平常大。如果您进入设备设置,则可以将显示设置为压缩模式,并且视图将与其他设备上的视图大小相同。我不确定以编程方式处理此问题的方法,但是......