我对这个问题的描述有一个非常相似的问题,但是答案虽然很复杂,但并不是很恰当。
Android Studio 1.4: drawable-v21 ignored when using "File/New/Vector Asset" option
我有一个按钮,我想在pre21设备上应用按下的颜色,并在v21 +设备上使用波纹。
在drawable文件夹中,我有button_primary_theme
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="@color/themePimaryrOnePressed" />
</shape>
</item>
<item>
<shape>
<solid android:color="@color/themePrimaryOne" />
</shape>
</item>
</selector>
在drawable-v21文件夹中
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:drawable="?attr/colorPrimary"/>
</ripple>
无论我做什么,我都无法使用我的Lollipop设备上v21文件夹中的波纹效果来进行布局。它始终使用可绘制的棒棒糖。
<Button
android:id="@+id/getting_started"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_primary_theme" />
在另一个答案中,他为v21效果制作了一个单独命名的文件,但这意味着除了新的drawable之外,我还需要布局的新副本,并且不必使它起作用。
我试过清理项目,但仍使用non v21 drawable。
如何在不复制所有内容的情况下使它工作?
最佳答案
看来这是我的错。希望这可以帮助其他人。
我的普通可绘制对象实际上位于drawable-nodpi文件夹中,而不是可绘制对象。我想那是某种程度上覆盖了v21文件夹版本。