Android 更改清单中的版本后,按钮被扭曲

Android 更改清单中的版本后,按钮被扭曲,android,Android,将清单中的版本从10更改为11后,按钮被扭曲。如果我把它改回10个按钮就可以了。这些按钮在每个可绘制文件夹中都有各自的可绘制内容。这种情况也发生在不带抽绳的按钮上。只有文本的按钮文本放大了很多 编辑以添加xml示例: 下面是xml中的按钮的外观 <Button android:id="@+id/settingsEditInfoBtn" android:layout_width="wrap_content" android:layout_height="wrap_conten

将清单中的版本从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" />

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


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

如果你想拥有你选择的尺寸,你应该明确定义你的风格,并在你的布局中使用它

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

14dp
把它用在你的按钮上

<Button style="@style/CustomTheme"
android:layout_width=".." 
../>

按钮的最小高度和最小宽度由默认主题在某处设置。将它们都设置为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>

@样式/我的按钮样式
1dp
1dp
然后,不要忘记将自定义主题应用于AndroidManifest.xml中任何所需的活动:

<activity
  android:name=".MainActivity"
  android:theme="@style/MyTheme"
</activity>

这会影响有文本的按钮的文本大小,但您描述的内容不会影响没有文本的按钮。我发布的图像中的按钮没有将其文本属性设置为任何值,而是文本是可绘制背景的一部分。因此,更改文本大小并没有什么区别。钮扣还没扣好,很公平。按钮的默认填充和边距可能会根据API级别的不同而有所不同。感谢您为我指出了主题的正确方向。按钮的最小高度和最小宽度似乎是由某个地方的默认主题设置的。使用你建议的自定义主题可以解决这个问题,因为我知道是什么属性导致了这个问题。