输入框使用之前文章中的可删除的输入框,可删除的输入框
public class CusPwdEditText extends RelativeLayout {
private Context mContext;
private boolean isVisi = true;
private ImageView visiImage;
private CusDeleteEditText mPwdEdit;
public CusPwdEditText(Context context) {
super(context);
init(context);
}
public CusPwdEditText(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
public CusPwdEditText(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
this.mContext = context;
visiImage = new ImageView(context);
visiImage.setId(R.id.pwd_edit);
visiImage.setImageResource(R.drawable.icon_pwd_hide);
RelativeLayout.LayoutParams ImageParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
ImageParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
ImageParams.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
visiImage.setPadding(dip2px(5), dip2px(5), dip2px(5), dip2px(5));
visiImage.setLayoutParams(ImageParams);
visiImage.setOnClickListener(listener);
mPwdEdit = new CusDeleteEditText(context);
mPwdEdit.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT);
RelativeLayout.LayoutParams editParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
editParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
editParams.addRule(RelativeLayout.LEFT_OF, R.id.pwd_edit);
editParams.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
mPwdEdit.setLayoutParams(editParams);
mPwdEdit.setHint(R.string.hint_input_password);
mPwdEdit.setBackgroundResource(R.color.white);
mPwdEdit.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
mPwdEdit.setTextColor(context.getResources().getColor(R.color.black_text_color));
addView(mPwdEdit);
addView(visiImage);
}
OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
if (isVisi) {
visiImage.setImageResource(R.drawable.icon_pwd_display);
mPwdEdit.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
} else {
visiImage.setImageResource(R.drawable.icon_pwd_hide);
mPwdEdit.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT);
}
isVisi = !isVisi;
}
};
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
private int dip2px(float dpValue) {
final float scale = mContext.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
}
使用方法;
<你的包名.CusPwdEditText
android:id="@+id/login_phone_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>