处理形状可绘制差异的最佳方法 Android 2.3.5 与 4.0

2023-12-20

我正在尝试使用以下形状绘制一个形状:

当使用以下命令时,这在 1.6 到 2.3.5 中可以正常工作:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
 android:shape="rectangle"> 
<solid android:color="#cc6900"/>

<corners android:radius="0.1dp" android:bottomRightRadius="7dp" android:bottomLeftRadius="0dp"
 android:topLeftRadius="0dp" android:topRightRadius="7dp"/> 

但是,当在 Galaxy Nexus 或 4.0 模拟器上运行它时,我必须使用它来获得相同的布局:

...
<corners android:radius="0.1dp" android:bottomRightRadius="0dp" android:bottomLeftRadius="7dp"
 android:topLeftRadius="0dp" android:topRightRadius="7dp"/> 
...

这在 1.6 上给了我这个:

所以基本上,以前的版本都是以一种方式使用bottomRight和bottomLeft,而现在4.0则以另一种方式使用。

有没有什么简单的方法可以让它像 4.0 之前的版本一样,并为 4.0 用户提供更改后的值?如果可能的话,我更愿意将其保留在 XML 中而不是代码中。


嗯,看起来我们在修复该问题时破坏了错误兼容性。 ;)

由于您是在 XML 可绘制对象中定义它,因此请将适用于 Android 4.0 之前的版本包含在您的res/drawable/目录和适用于 Android 4.0+ 的目录位于另一个名为res/drawable-v14/。 (14 是 Android 4.0 的 API 级别。)运行 Android 4.0 及更高版本的设备将使用较新的版本。

您可以使用相同的技术让系统自动为一堆不同的配置选项选择正确的资源,请参阅此处了解更多信息:http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理形状可绘制差异的最佳方法 Android 2.3.5 与 4.0 的相关文章

随机推荐