前言:
在日常的开发中因为涉及到用户交互的问题,我们难免会涉及到一些控件的使用,比如输入框EditText,文本显示控件TextView,这些控件都是Google在Android原生的api里面提供给我们开发者用来方便开发的控件,这些控件在一些基本需求的情况都可以满足,但是在用户交互如此注重的时代难免存在一点美中不足,那就需要我们对这些原生的控件进行一些修改,以便于达到我们的需求,话不多说,先上图:

接下来说一说实现步骤,从效果图我们可以看出这是一个输入框,用它来跟原生的EditText对比一下的,可以看见后面多了一个删除的图标,那我们的实现思路为定义一个类继承于原生的EditText然后进行我们需要的处理操作。
步骤一:
定义一个变量来实现后面删除图标的引用以及左,上,下间距的变量:

imgAble = mContext.getResources().getDrawable(R.drawable.delete_img);drawableLeft = getCompoundDrawables()[0];drawableTop = getCompoundDrawables()[1];drawableButtom = getCompoundDrawables()[3];

判断输入框文字的长度,根据长度判断是否显示删除图标
if (length() < 1) {
setCompoundDrawablesWithIntrinsicBounds(drawableLeft, drawableTop, imgInable, drawableButtom);
} else {
setCompoundDrawablesWithIntrinsicBounds(drawableLeft, drawableTop, imgAble, drawableButtom);
}
步骤二:重写onTouchEvent方法实现点击删除图标清空输入框的逻辑

public boolean onTouchEvent(MotionEvent event) {    if (imgAble != null && event.getAction() == MotionEvent.ACTION_UP) {        int eventX = (int) event.getRawX();        int eventY = (int) event.getRawY();        Rect rect = new Rect();        getGlobalVisibleRect(rect);        rect.left = rect.right - 50;        if (rect.contains(eventX, eventY))            setText("");    }    return super.onTouchEvent(event);}

到这里,一个带清空输入功能的输入框就完成了,欢迎大家一起留言改正其中的不足

更多相关文章

  1. Android(安卓)View中的控件和监听方法...
  2. Android自定义View实现竖直跑马灯效果案例解析
  3. 如何删除Android系统中的内置应用
  4. Android智能电视开发之明星UI---RecyclerView
  5. Android客户端实现图片轮播控件
  6. Python+PyQT5的子线程更新UI界面
  7. 一步步客制化Android桌面(Launcher3)图标
  8. Android(安卓)RatingBar 评星控件的自定义大小和样式
  9. Android(安卓)自定义控件之组合控件

随机推荐

  1. [转]Android(安卓)Audio简述
  2. 在Android中支持表情
  3. Ubuntu 下配置使用Android(安卓)adb
  4. /system/bin/service分析与使用
  5. Android上的log,日志相关
  6. Android自定义相机,切换前后摄像头,照相
  7. Android(安卓)让你的 EditText 只接受指
  8. Android(安卓)菜单(Menu)控件的使用
  9. Android全部源码导入Eclipse
  10. 【Android】Android(安卓)4.2源码下载(ubu