如何禁用按钮上的文本填充?

时间:2018-07-06 12:41:41

标签: java android android-layout button

我有一个应用程序,该应用程序会自动将一些按钮添加到LinearLayout并添加一个字母。现在,我遇到了一个问题,当我在Nexus 5模拟器上尝试时,它看起来不错: enter image description here

但是,在Android Galaxy 7 edge上,字母像这样裁剪:

enter image description here

现在,我的问题是:如何禁用按钮的填充?在银河系中,似乎有足够的空间可以显示所有字母,但无论如何都会出现。那么我该如何解决呢? 这是代码中按钮的自定义代码设置:

 key.setBackground(getDrawable(R.drawable.keyboad_key)); //custom background xml
 LinearLayout.LayoutParams letterParams = new LinearLayout.LayoutParams(90, 120);
    letterParams.setMargins(5,0,5,0);
letterParams.gravity = Gravity.CENTER;
key.setLayoutParams(letterParams);

keyboard_key.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:left="1dp"
        android:right="1dp">

        <shape>
            <stroke
                android:width="1dp"
                android:color="#699689"/>
            <corners
                android:radius="7dp" />
            <solid android:color="#699689"/>
        </shape>

    </item>
</layer-list>

此外,我正在尝试使用TextSize为不同的电话设置每个按钮的固定大小,如下所示:

key.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
key.setTextSize(TypedValue.COMPLEX_UNIT_SP,15f);

但是这会发生:

enter image description here

即使我使用的是WRAP_CONTENT,我也不明白为什么它这么大,所以按钮应该只是其中的文本大小。 我试着写:

key.setMinHeight(0);
key.setMinWidth(0);

但没有帮助。

谢谢。

0 个答案:

没有答案