有没有办法在 drawable.xml 文件中定位某些 Api?
Is there a way to target certain Api's in a drawable.xml file?
我使用 ripple 创建了一个自定义 drawable,它只针对 api 21 及以上,我知道它可以通过编程方式完成,但是有没有办法在 drawable 本身中做到这一点?
我还尝试为更高的 api 创建一个单独的文件夹,我听说可以通过布局来完成,但运气不好,谢谢。
听起来您已经尝试过了,但这应该可行。在 res 文件夹中创建一个 drawable-v21。这应该针对 API 21 及更高版本(或者如果您有另一个更高的 API 可绘制文件夹,即 drawable-v24,您的 21 将从 21 到 23)。将该级别的可绘制对象放在这个新目录中
您可以为不同的 API
版本创建多个资源,让 Android 根据设备的 API
版本选择其中之一。创建一个新的 drawable.xml
文件,但选择 API
版本 21 作为限定符并将代码放在上面。创建另一个没有版本限定符的 drawable.xml
并放置另一个在 21 之前版本上运行的代码。
你可以这样使用:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP)
然后显示您的可绘制对象。
我使用 ripple 创建了一个自定义 drawable,它只针对 api 21 及以上,我知道它可以通过编程方式完成,但是有没有办法在 drawable 本身中做到这一点?
我还尝试为更高的 api 创建一个单独的文件夹,我听说可以通过布局来完成,但运气不好,谢谢。
听起来您已经尝试过了,但这应该可行。在 res 文件夹中创建一个 drawable-v21。这应该针对 API 21 及更高版本(或者如果您有另一个更高的 API 可绘制文件夹,即 drawable-v24,您的 21 将从 21 到 23)。将该级别的可绘制对象放在这个新目录中
您可以为不同的 API
版本创建多个资源,让 Android 根据设备的 API
版本选择其中之一。创建一个新的 drawable.xml
文件,但选择 API
版本 21 作为限定符并将代码放在上面。创建另一个没有版本限定符的 drawable.xml
并放置另一个在 21 之前版本上运行的代码。
你可以这样使用:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP)
然后显示您的可绘制对象。