TextView的xml文件:

其中 android:digits="@string/rule_edit" 为文本过滤:

0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`¬!"£$%^*()~=#{}[];':,./?/*-_+<>@&

在代码中如果要修改drawableRight设置的图片可以使用API

void android.widget.TextView.setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)

Drawable可以通过 Drawable rightDrawable = getResources().getDrawable(R.drawable.icon_new); 得到。

但是API提示,setCompoundDrawables() 调用的时候,Drawable对象必须调用setBounds(int left, int top, int right, int bottom)方法,于是我们加一行代码就可以了。

 Drawable drawableSee = getResources().getDrawable(R.drawable.password_see);                    drawableSee.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());                    adtUserPwd.setCompoundDrawables(null, null, drawableSee, null);

 

如若为drawableRight设置监听:

adtUserPwd.setOnTouchListener(new onTounchListener());
onTounchListener()代码如下:
private class onTounchListener implements View.OnTouchListener {        @Override        public boolean onTouch(View v, MotionEvent event) {            // et.getCompoundDrawables()得到一个长度为4的数组,分别表示左右上下四张图片            Drawable drawable = adtUserPwd.getCompoundDrawables()[2];            //如果右边没有图片,不再处理            if (drawable == null)                return false;            //如果不是按下事件,不再处理            if (event.getAction() != MotionEvent.ACTION_UP)                return false;            if (event.getX() > adtUserPwd.getWidth()                    - adtUserPwd.getPaddingRight()                    - drawable.getIntrinsicWidth()) {                if (!displayPassWord) {                    Drawable drawableSee = getResources().getDrawable(R.drawable.password_see);                    drawableSee.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());                    adtUserPwd.setCompoundDrawables(null, null, drawableSee, null);//隐藏密码                    adtUserPwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance());                } else {                    Drawable drawableSee = getResources().getDrawable(R.drawable.password);                    drawableSee.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());                    adtUserPwd.setCompoundDrawables(null, null, drawableSee, null);                    //显示密码adtUserPwd.setTransformationMethod(PasswordTransformationMethod.getInstance());                }                displayPassWord = !displayPassWord;            }            return false;        }    }

文章参考于:https://blog.csdn.net/catoop/article/details/39959175

更多相关文章

  1. Mac Android(安卓)Studio快捷键
  2. PHP 和 Android(安卓)MD5 加密出来结果是一样的代码
  3. Android(安卓)顶部状态栏覆盖到应用之上?
  4. 开发安卓-android使用webview加载网页无法使用js的问题
  5. [Android(安卓)Pro] 关于BitmapFactory.decodeStream(is)方法无
  6. Android:不同drawable文件夹的区别
  7. Android(安卓)提升开发效率工具(Template/Plugin)
  8. android 之 新浪微博
  9. Android(安卓)3.0 访问WebService 出现 android.os.NetworkOnMai

随机推荐

  1. dom操作演示、选择器操作演示、鼠标事件
  2. 07-13作业
  3. 3阶(次)贝塞尔曲线的JavaScript(JS)实现
  4. Ajax 添加删除修改
  5. 滚动条在css上的注意点
  6. 京东秒杀区
  7. 演示文本操作、演示样式属性操作 、演示
  8. MVC-安装jQuery的npm和yarn的方法
  9. flex 容器和项目 常用属性
  10. 微信JSSDK签名