我正在尝试为使用矢量drawable的ImageButton应用色调:
<android.support.v7.widget.AppCompatImageButton
android:id="@+id/flashlight_button"
app:srcCompat="@drawable/ic_flash_off_black_24dp"
android:tint="@color/icon_states_color"
/>
这将适用于Lollipop +,但会在Kitkat上崩溃。
如何在app compat世界中为Kitkat做ColorList色彩?
答案 0 :(得分:2)
你可以做到。
但你不能使用@color参考颜色(..lame),否则它只能用于L +
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFAABB"
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zm-6,0C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
答案 1 :(得分:0)
嗨,您可以通过编程方式在图像按钮中添加色调,并检查它是否在棒棒糖下方,然后以低于其他方式工作。
根据documentation,android:backgroundTint
的相关方法是setBackgroundTintList(ColorStateList list)
<强>更新强>
按照此link了解如何创建颜色状态列表资源。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="#your_color_here" />
</selector>
然后使用
加载它setBackgroundTintList(contextInstance.getResources().getColorStateList(R.color.your_xml_name));
其中contextInstance
是Context
使用AppCompart
btnTag.setSupportButtonTintList(ContextCompat.getColorStateList(Activity.this, R.color.colorPrimary));
试试这种方式,希望这会对你有帮助。
答案 2 :(得分:0)
android:tint in vector drawable with work。所以只需要android:布局中应该避免使用色调。