我有一个应用程序,该应用程序会自动将一些按钮添加到LinearLayout并添加一个字母。现在,我遇到了一个问题,当我在Nexus 5模拟器上尝试时,它看起来不错:
但是,在Android Galaxy 7 edge上,字母像这样裁剪:
现在,我的问题是:如何禁用按钮的填充?在银河系中,似乎有足够的空间可以显示所有字母,但无论如何都会出现。那么我该如何解决呢? 这是代码中按钮的自定义代码设置:
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);
但是这会发生:
即使我使用的是WRAP_CONTENT,我也不明白为什么它这么大,所以按钮应该只是其中的文本大小。 我试着写:
key.setMinHeight(0);
key.setMinWidth(0);
但没有帮助。
谢谢。