CheckBox选择器中的Android Vector Drawables(Sdk <21)

时间:2017-06-08 08:10:44

标签: android android-layout android-studio android-support-library vector-graphics

所以,我一直在为我的项目添加矢量资源。并且......它们在前Lollipop(sdk&lt; 21)设备上工作正常。我没有向build.gradle添加gradle:vectorDrawables.useSupportLibrary=true标志。没有将AppComaptDelegate.setCompatVectorFromResourcesEnabled(true)添加到java。没有在布局中使用compat小部件。相关的xml如下所示:

<CheckBox
      ...
      android:background="@drawable/round_checkbox"
      android:button="@null"/>

round_checkbox.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/round_check_green"/>
    <item android:drawable="@drawable/round_check_gray"/>
</selector>

相关项目信息:

minSdkVersion 19
targetSdkVersion 24
compileSdkVersion 25
buildToolsVersion '25.0.2'
gradle Version 3.3
dependancies:
... [way too many, we are multidexing here]. General:
compile "com.android.support:appcompat-v7:25.3.1"

虽然,非常高兴,我的应用程序工作正常,但我很困惑为什么它不会崩溃。 这是一个很大的项目,因此无法对用户进行测试。任何想法/建议/信息将不胜感激。

1 个答案:

答案 0 :(得分:0)

经过一些经验测试后,我可以确认vsatkh的假设,如果不存在gradle标志,AS会从矢量drawable中生成光栅图形(在构建/中间体中)。因此,要使用矢量drawable,需要遵循此tutorial,否则它将是简单的栅格自动生成。