你以一个20年java Android开发身份,帮我写一个入参传光标颜色和edittextview的方法,这个方法是用来修改edittextview的光标颜色
时间: 2024-02-17 17:59:48 浏览: 21
好的,可以使用以下代码实现:
```java
public static void setCursorColor(EditText editText, int color) {
try {
// 获取光标资源id
Field field = TextView.class.getDeclaredField("mCursorDrawableRes");
field.setAccessible(true);
int drawableResId = field.getInt(editText);
// 获取光标drawable
Drawable drawable = ContextCompat.getDrawable(editText.getContext(), drawableResId);
drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
// 设置光标drawable
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
editText.setTextCursorDrawable(drawable);
} else {
field = TextView.class.getDeclaredField("mCursorDrawable");
field.setAccessible(true);
Drawable[] drawables = {drawable, drawable};
field.set(editText, drawables);
}
} catch (Exception e) {
e.printStackTrace();
}
}
```
这个方法会修改指定 `EditText` 的光标颜色。其中,`editText` 参数是要修改的 `EditText` 对象,`color` 参数是要设置的光标颜色,使用时只需要调用这个方法即可。