输入框使用之前文章中的可删除的输入框,可删除的输入框
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"/>
本文介绍了一个自定义的Android输入框组件CusPwdEditText,该组件允许用户在显示和隐藏密码输入之间进行切换。通过点击可见性图标,用户可以方便地查看所输入的密码内容。
173

被折叠的 条评论
为什么被折叠?



