您的位置:首页 > 移动开发 > Android开发

Android EditTet TextView中drawable的点击事件

2016-10-10 10:42 363 查看
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方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 控件