其实对于EditText设置光标颜色很简单,通过反射找到 mCursorDrawableRes属性在改变
public static void setCursorDrable(EditText editText, int color) {
if (editText == null) {
return;
}
try {
Field mCursorDrawableRes = TextView.class.getDeclaredField("mCursorDrawableRes");
mCursorDrawableRes.setAccessible(true);
mCursorDrawableRes.setInt(editText, color);
} catch (Exception e) {
Logger.e(TAG, e);
}
}
这个int类型的color并不是十六进制的颜色值 而是xml文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:width="1dp" />
<solid android:color="@color/primary" />
</shape>