3

将清单中的 minSdkVersion 从 10 更改为 11 后,按钮会变形。如果我将其更改回 10,则按钮很好。这些按钮在每个可绘制文件夹中都有各自的可绘制对象。这也发生在没有可绘制对象的按钮上。仅包含文本的按钮文本会放大很多。

普通按钮

扭曲的按钮

编辑以添加 xml 示例:

这是 xml 中的按钮的外观。

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

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

编辑信息可绘制

4

2 回答 2

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" />

或者,您可以在应用程序主题中设置按钮样式,覆盖所有按钮的这些值。在值/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>
于 2013-05-22T17:52:06.820 回答
1

这个是正常的。默认字体/大小/样式在两个 API 级别之间有所不同,并且文本以与 API 级别对应的默认字体呈现。根据定义,当您将 min/Targets Sdk 版本设置为 11 或更高版本时,应用程序会继承默认的全息主题。

如果您想拥有您选择的大小,您应该明确定义您的样式并在您的布局中使用它。

<style name="CustomTheme">
<item name="textSize"> 14dp </item>
</style>

并在您的按钮中使用它。

<Button style="@style/CustomTheme"
android:layout_width=".." 
../>
于 2013-05-22T15:22:30.057 回答