1. 在xml中定义控制
drawableRight 图片就用的是系统自带的啦
2.在MainActivity中 获取控件
et= (EditText) findViewById(R.id.et);
3.给控件添加onTouchListener事件......
et.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //控件对象.getCompoundDrawables()是用来获取控件drawable的 //四个方向的图片,返回的是一个Drawable数组,其顺序是顺时针,left, //top...... final Drawable[]drawables=et.getCompoundDrawables(); //我获取的是drawableRight,所以下标是2 Drawable drawableRight=drawables[2]; if(drawables==null){ return false; } //判断触摸坐标 event.getX()要>图片的左边,<图片的右边 /*et.getWidth() 控件.getWidth()获取整个控件的宽度
drawableRight.getIntrinsicWidth() 图片.getIntrinsicWidth()获取图片的宽度*/et.getPaddingRight() 获取控件的右边距
if ((event.getX()>et.getWidth()-drawableRight.getIntrinsicWidth()-et.getPaddingRight())&&(event.getX()<et.getWidth()-et.getPaddingRight())){//这里就是写点击事件了.....
// Toast.makeText(MainActivity.this,"sucess",Toast.LENGTH_SHORT).show(); } return false; }});
总结 : 以上只是针对EditText的drawableRight ,同样可以类推TextView..... 同样也可以自定义EditText 重写onTouchEvent方法。