EditText之密码显示明文的输入框

来源:互联网 发布:镜像站搭建 知乎 编辑:程序博客网 时间:2024/05/16 21:24

这里写图片描述

输入框使用之前文章中的可删除的输入框,可删除的输入框

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"/>
原创粉丝点击