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

时间:2013-05-22 15:17:28

标签: android

将清单中的minSdkVersion从10更改为11后,按钮失真。如果我将其更改回10,按钮就可以了。这些按钮在每个可绘制文件夹中都有各自的绘图。这也发生在没有drawable的按钮上。只有文本文本的按钮会被放大一点。

Normal buttons

Distorted buttons

编辑以添加xml示例:

这是xml中的按钮的样子。

<Button
  android:id="@+id/settingsEditInfoBtn"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/edit_info_btn" />

文字是图片的一部分。这是可绘制的编辑信息按钮。

Edit info drawable

2 个答案:

答案 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=".." 
../>