我在下面的xml文件中有2个编辑文本,我手动尝试了可绘制对象中的图像,但没有运气 我该怎么做?
顺便说一句,我正在使用最新的安卓X库。
我对textInputLayout没有任何问题,但我的观点正在改变,我无法解决它。
如果任何专家可以做到这一点,我将不胜感激。
法典:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/backgroundcolor"
android:orientation="vertical"
tools:context="com.tekitsolutions.remindme.Activity.CreatePasswordActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/toolbarcolor">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/toolbarcolor"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:title="@string/title_add_reminder" />
</com.google.android.material.appbar.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/backgroundcolor"
android:gravity="center"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/toolbar"
android:background="?attr/backgroundcolor">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="15dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="22dp"
android:gravity="center"
android:orientation="horizontal">
<androidx.cardview.widget.CardView
android:id="@+id/card_lock"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginRight="15dp"
android:elevation="12dp"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="1.9"
app:cardBackgroundColor="?attr/backgroundcolor"
app:cardCornerRadius="40dp">
<ImageView
android:id="@+id/iv_lock"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:gravity="center"
android:tint="?attr/iconcolor"
app:srcCompat="@drawable/ic_lock_black_24dp"></ImageView>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/card_success"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginRight="15dp"
android:elevation="12dp"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="1.9"
android:visibility="gone"
app:cardBackgroundColor="?attr/backgroundcolor"
app:cardCornerRadius="40dp">
<ImageView
android:id="@+id/iv_success"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:gravity="center"
android:tint="?attr/iconcolor"
app:srcCompat="@drawable/ic_check_black_24dp"></ImageView>
</androidx.cardview.widget.CardView>
</LinearLayout>
<RelativeLayout
android:id="@+id/layout_pwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:background="@drawable/bg_card_layout_details"
android:padding="8dp"
android:visibility="gone">
<ImageView
android:id="@+id/image_old"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:tint="?attr/iconcolor"
app:srcCompat="@drawable/ic_lock_outline_black_24dp" />
<EditText
android:id="@+id/old_pwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/image_old"
android:background="@android:color/transparent"
android:hint="@string/create_your_4_digit_passcode"
android:imeOptions="actionNext"
android:inputType="numberPassword"
android:maxLength="4"
android:textAllCaps="true"
android:textColor="?attr/textcolor"
android:textSize="16sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/layout_alias"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_card_layout_details"
android:padding="8dp">
<ImageView
android:id="@+id/iv_mobile_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:tint="?attr/iconcolor"
app:srcCompat="@drawable/ic_lock_outline_black_24dp" />
<EditText
android:id="@+id/etCreatePassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/iv_mobile_no"
android:background="@android:color/transparent"
android:hint="@string/create_your_4_digit_passcode"
android:imeOptions="actionNext"
android:inputType="numberPassword"
android:maxLength="4"
android:textAllCaps="true"
android:textColor="?attr/textcolor"
android:textSize="16sp" />
</RelativeLayout>
<!--<include
android:id="@+id/tv_error_passcode"
layout="@layout/row_error_textview2" />-->
<TextView
android:id="@+id/tv_error_passcode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:orientation="vertical"
android:textColor="@color/colorRed"
android:visibility="gone"></TextView>
<RelativeLayout
android:id="@+id/layout_url_link"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/bg_card_layout_details"
android:padding="8dp">
<ImageView
android:id="@+id/iv_url_link"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:tint="?attr/iconcolor"
app:srcCompat="@drawable/ic_lock_outline_black_24dp" />
<EditText
android:id="@+id/etConfirmPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/iv_url_link"
android:background="@android:color/transparent"
android:hint="@string/confirm_pass"
android:imeOptions="actionDone"
android:inputType="numberPassword"
android:maxLength="4"
android:textColor="?attr/textcolor"
android:textSize="16sp" />
</RelativeLayout>
<!-- <include
android:id="@+id/tv_error_confm_passcode"
layout="@layout/row_error_textview2" />-->
<TextView
android:id="@+id/tv_error_confm_passcode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:orientation="vertical"
android:textColor="@color/colorRed"
android:visibility="gone"></TextView>
<Button
android:id="@+id/btnConfirm"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="16dp"
android:background="@drawable/bg_btn_color"
android:imeOptions="actionDone"
android:text="@string/button_confirm"
android:textColor="@color/colorWhite" />
</LinearLayout>
</ScrollView>
</LinearLayout>
</LinearLayout>
在EditText
使用以下代码设置自定义drawable
图标。
<EditText
android:id="@+id/old_pwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/image_old"
android:background="@android:color/transparent"
android:hint="@string/create_your_4_digit_passcode"
android:imeOptions="actionNext"
android:inputType="numberPassword"
android:drawableRight="@mipmap/icn_eye"
android:maxLength="4"
android:textAllCaps="true"
android:textColor="?attr/textcolor"
android:textSize="16sp" />
现在,您必须将侦听器touch
设置为EditText
。
@OnTouch(R.id.old_pwd)
boolean toChangePasswordText(View v, MotionEvent event) {
final int DRAWABLE_RIGHT = 2;
if (event.getAction() == MotionEvent.ACTION_UP) {
if (event.getRawX() >= (old_pwd.getRight() - old_pwd.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) {
if (old_pwd.getInputType() == InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD) {
old_pwd.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_PASSWORD);
old_pwd.setCompoundDrawablesWithIntrinsicBounds(null, null, context.getResources().getDrawable(R.mipmap.icn_eye), null);
old_pwd.setSelection(old_pwd.getText().length());
} else {
old_pwd.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
old_pwd.setCompoundDrawablesWithIntrinsicBounds(null, null, context.getResources().getDrawable(R.mipmap.icn_eyecross), null);
old_pwd.setSelection(old_pwd.getText().length());
}
return true;
}
}
return false;
}