在清单中更改minSdkVersion后,按钮会被扭曲

dus*_*tin 3 android

将清单中的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" />
Run Code Online (Sandbox Code Playgroud)

文本是图像的一部分.这是可绘制的编辑信息按钮.

编辑信息drawable

dus*_*tin 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" />
Run Code Online (Sandbox Code Playgroud)

或者,您可以在应用程序主题中设置按钮样式,以覆盖所有按钮的这些值.在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>
Run Code Online (Sandbox Code Playgroud)

然后,不要忘记将自定义主题应用于AndroidManifest.xml中的任何所需活动:

<activity
  android:name=".MainActivity"
  android:theme="@style/MyTheme"
</activity>
Run Code Online (Sandbox Code Playgroud)