Ren*_*ndy 12 android android-edittext
我使用tint作为整个应用程序的图标.
我的例子ImageView:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_account_circle"
android:tint="@color/red_color"/>
Run Code Online (Sandbox Code Playgroud)
我还使用了一些图标EditText作为drawable:
<EditText
android:id="@+id/passwordInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_lock"
android:drawablePadding="@dimen/medium_margin_padding"
android:hint="@string/password_text"
android:inputType="textPassword" />
Run Code Online (Sandbox Code Playgroud)
但是,我找不到任何可用于对drawable进行着色的代码EditText.是不是可以为可绘制着色?
注意:
我使用appcompat和设计支持库,但仍然找不到任何代码.
mbe*_*sky 35
使用DrawableCompat类中的wrap, setTint, setTintMode方法以编程方式为drawable设置tint
Drawable drawable = getyourdrawablehere;
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable, Color.GREEN);
DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_OVER);
Run Code Online (Sandbox Code Playgroud)
在为editText设置drawable之后:
editText.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);
Run Code Online (Sandbox Code Playgroud)
She*_*han 13
使用像这样的位图标记创建一个drawable
drawable_with_tint.xml
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_lock"
android:tint="#fff">
</bitmap>
Run Code Online (Sandbox Code Playgroud)
然后你可以在edittext中使用drawable
<EditText
android:id="@+id/passwordInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_drawable_with_tint"
android:drawablePadding="@dimen/medium_margin_padding"
android:hint="@string/password_text"
android:inputType="textPassword" />
Run Code Online (Sandbox Code Playgroud)
小智 10
不幸的是,mbelsky发布的解决方案需要进行一些非常小的改动.为了在EditText中为您的drawable着色,您需要使用wrap setTint和setTintMode.适用于所有API的完整解决方案:
Drawable drawable = getResources().getDrawable(drawableID/mipmapID);
emailDrawable = DrawableCompat.wrap(emailDrawable);
DrawableCompat.setTint(emailDrawable,getResources().getColor(R.color.purple));
DrawableCompat.setTintMode(emailDrawable, PorterDuff.Mode.SRC_IN);
editText.setCompoundDrawablesWithIntrinsicBounds(drawable,null,null,null);
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用
android:drawableTint="@color/yourcolor"
Run Code Online (Sandbox Code Playgroud)
请注意,它仅适用于Api 23或更高版本
| 归档时间: |
|
| 查看次数: |
12964 次 |
| 最近记录: |