364_自定义带隐藏EditText





自定义带隐藏EditText


public class EyeAndClearEditText extends LinearLayout {


    private Context context;
    private boolean open = true;
    private ClearEditText clearEditText;
    private ImageView imageView;


    public EyeAndClearEditText(Context context) {
        this(context, null);
    }


    public EyeAndClearEditText(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }


    public EyeAndClearEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        this.context = context;
        this.setOrientation(HORIZONTAL);


        initEditText();
        initImageView();
    }


    private void initImageView() {
        imageView = new ImageView(context);
        imageView.setImageResource(R.drawable.icon_beye_n);
        this.addView(imageView);
        LinearLayout.LayoutParams layoutParams = (LayoutParams) imageView.getLayoutParams();
        layoutParams.gravity = Gravity.CENTER_VERTICAL;
        layoutParams.width = LayoutParams.WRAP_CONTENT;
        layoutParams.height = LayoutParams.WRAP_CONTENT;
        layoutParams.rightMargin = DensityUtil.dip2px(context, 16);
        layoutParams.leftMargin = DensityUtil.dip2px(context, 16);
        imageView.setLayoutParams(layoutParams);
        imageView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (open) {
                    open = false;
                    clearEditText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
                } else {
                    open = true;
                    clearEditText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
                }
            }
        });
    }


    private void initEditText() {
        clearEditText = new ClearEditText(context);
        this.addView(clearEditText);
        LinearLayout.LayoutParams layoutParams = (LayoutParams) clearEditText.getLayoutParams();
        layoutParams.width = LayoutParams.WRAP_CONTENT;
        layoutParams.height = LayoutParams.MATCH_PARENT;
        layoutParams.weight = 1;
        clearEditText.setLayoutParams(layoutParams);
        clearEditText.setBackground(null);
        clearEditText.setMaxLines(1);
    }
}


经验证发现要用
setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值