今天做了一个EditText带删除按钮Demo感觉有点用,所以分享一下!
效果图片
实现
1.在EditText上面加一个图片
(1)添加图片就比较简单了在EditText里面设置属性 android:drawableRight="@drawable/delete"
2.获取到图片的区域
(1)这里实现需要用onTouch事件
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
//抬起时处理
case MotionEvent.ACTION_UP:
//获取屏幕的坐标 X
int x = (int) event.getRawX();
//获取屏幕的坐标 Y
int y = (int) event.getRawY();
//创建一个矩形对象
Rect rect = new Rect();
//关键是这个属性相信很多人都没有用过
//意思就是得到一个矩形的坐标传一个矩形进去
editText.getGlobalVisibleRect(rect);
//这里本来矩形的宽度是从控件离左边的起始位置,但是这里需要将left属性重新赋值rect.left = //rect.right-50这里将left位置移到下面的矩形位置了这样就方便我们处理了
rect.left = rect.right-50;
3.实现点击删除功能
//判断点击区域是否为矩形的区域如果是则清除文字
if (rect.contains(x,y)) {
et.setText("");
}
break;
default:
break;
}
return false;
}