选项卡图标:我当前的方法是创建两个文件(ic_list_selected_24dp.xml和ic_list_unselected_24dp.xml;它们基本相同但只是android:fillColor='Color HEX CODE'不同),然后创建一个选择器(selector_tabitem_list.xml)来更改状态时的可绘制颜色改变了.
// @drawable/selector_tabitem_list.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:drawable="@drawable/ic_list_selected_24dp"
android:state_selected="true" />
<item android:drawable="@drawable/ic_list_unselected_24dp"
android:state_selected="false" />
</selector>
Run Code Online (Sandbox Code Playgroud)
它有点复制,因为两个drawable是相同的.
选择器不能用于矢量drawable.
<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="@drawable/selector"
android:pathData="M19,3...."
</vector>
Run Code Online (Sandbox Code Playgroud)
-
// @drawable/selector
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<color android:color="@color/itemSelected" />
</item>
<item android:state_selected="false">
<color android:color="@color/itemUnselected" />
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
,android:fillColor="@color/state"或者.
// @color/state
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/white" android:state_selected="true" />
<item android:color="@android:color/black" android:state_selected="false" />
</selector>
Run Code Online (Sandbox Code Playgroud)
有没有办法使用一个drawable并动态更改其颜色?使用硬十六进制代码更好?
谢谢.
android android-tabs android-selector android-tablayout android-vectordrawable
我有一个实体Memo类。我@TypeConverter用来转换GregorianCalendar为Long.
备忘录.java
@Entity
public class Memo {
@Ignore
public static final int TYPE_EXPENSE = 0;
@Ignore
public static final int TYPE_INCOME = 1;
@PrimaryKey(autoGenerate = true)
public int id;
public int type;
@ColumnInfo(name = "item_name")
public String itemName;
@ColumnInfo(name = "category_name")
public String categoryName;
public String note;
public double dollar;
public GregorianCalendar date;
public String photoPath;
@Ignore
public Memo(int type) {
this.type = type;
itemName = "";
categoryName = "";
note = …Run Code Online (Sandbox Code Playgroud)