Activity public class Main3Activity extends Activity { private EditText et_passwd; private ImageView iv_showPassword;//密码是否明文显示 private Boolean showPassword = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); et_passwd = findViewById(R.id.et_passwd); iv_showPassword = findViewById(R.id.iv_showPassword); // iv_showPassword.setImageDrawable(getResources().getDrawable(R.drawable.a)); iv_showPassword.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(showPassword){ // 显示密码 iv_showPassword.setImageDrawable(getResources().getDrawable(R.drawable.b)); et_passwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); et_passwd.setSelection(et_passwd.getText().toString().length()); showPassword = !showPassword; } else { // 隐藏密码 iv_showPassword.setImageDrawable(getResources().getDrawable(R.drawable.a)); et_passwd.setTransformationMethod(PasswordTransformationMethod.getInstance()); et_passwd.setSelection(et_passwd.getText().toString().length()); showPassword = !showPassword; } } }); } }
xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Main3Activity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:password="true" android:id="@+id/et_passwd" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/et_passwd" android:layout_marginTop="@dimen/dp_50" android:src="@drawable/a" android:id="@+id/iv_showPassword" /> </RelativeLayout>