将清单中的minSdkVersion从10更改为11后,按钮失真。如果我将其更改回10,按钮就可以了。这些按钮在每个可绘制文件夹中都有各自的绘图。这也发生在没有drawable的按钮上。只有文本文本的按钮会被放大一点。
编辑以添加xml示例:
这是xml中的按钮的样子。
<Button
android:id="@+id/settingsEditInfoBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/edit_info_btn" />
文字是图片的一部分。这是可绘制的编辑信息按钮。
答案 0 :(得分:5)
按钮的minHeight和minWidth由某个默认主题设置。将它们设置为1dp解决了这种情况下的问题。
<Button
android:id="@+id/settingsEditInfoBtn"
android:minHeight="1dp"
android:minWidth="1dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/edit_info_btn" />
或者,您可以在应用程序主题中设置按钮样式,以覆盖所有按钮的这些值。在values / themes.xml中:
<style name="MyTheme" parent="android:Theme">
<item name="android:buttonStyle">@style/MyButtonStyle</item>
</style>
<style name="MyButtonStyle" parent="android:style/Widget.Button">
<item name="android:minHeight">1dp</item>
<item name="android:minWidth">1dp</item>
</style>
然后,不要忘记将自定义主题应用于AndroidManifest.xml中的任何所需活动:
<activity
android:name=".MainActivity"
android:theme="@style/MyTheme"
</activity>
答案 1 :(得分:1)
这很正常。默认字体/大小/样式在两个API级别之间变化,文本以与API级别对应的默认字体呈现。根据定义,当您将min / Targets Sdk Version设置为11或更高时,应用程序将继承默认的全息主题。
如果您想拥有自己选择的尺寸,则应明确定义样式并在布局中使用它。
<style name="CustomTheme">
<item name="textSize"> 14dp </item>
</style>
并在按钮中使用它。
<Button style="@style/CustomTheme"
android:layout_width=".."
../>