Android 带删除按钮的EdiText
来源:互联网 发布:喀秋莎录屏软件破解版 编辑:程序博客网 时间:2024/06/06 11:01
自定义EdiText带删除效果
效果图:
自定义EdtiText
package com.example.liushuaitao.a01edtitextwithdel.MyEditTextWithDel;import android.content.Context;import android.graphics.Rect;import android.graphics.drawable.Drawable;import android.text.Editable;import android.text.TextWatcher;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.widget.EditText;import com.example.liushuaitao.a01edtitextwithdel.R;/** * Created by liushuaitao on 2016/7/13. */public class EditTextWithDel extends EditText { private String TAG = "Tao"; private Context context; private Drawable imgInable; private Drawable imgAble; /** * @param context */ public EditTextWithDel(Context context) { super(context); this.context = context; init(); } /** * @param context * @param attrs */ public EditTextWithDel(Context context, AttributeSet attrs) { super(context, attrs); this.context = context; init(); } /** * @param context * @param attrs * @param defStyleAttr */ public EditTextWithDel(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); this.context = context; init(); } /** * */ public void init() { imgInable = context.getResources().getDrawable(R.drawable.delete_gray); imgAble = context.getResources().getDrawable(R.drawable.delete); this.addTextChangedListener(new TextWatcher() { /** * * @param s * @param start * @param count * @param after */ @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } /** * * @param s * @param start * @param before * @param count */ @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } /** * * @param s */ @Override public void afterTextChanged(Editable s) { SetDeawable(); } }); SetDeawable(); } /** * */ public void SetDeawable() { if (this.length() <=0) { this.setCompoundDrawablesWithIntrinsicBounds(null, null, imgInable, null); } else { this.setCompoundDrawablesWithIntrinsicBounds(null, null, imgAble, null); } } @Override public boolean onTouchEvent(MotionEvent event) { if (imgAble != null && event.getAction() == MotionEvent.ACTION_UP) { int eventX = (int) event.getRawX(); int eventY = (int) event.getRawY(); Log.e(TAG, "eventX = " + eventX + "; eventY = " + eventY); Rect rect = new Rect(); this.getGlobalVisibleRect(rect); rect.left = rect.right - imgAble.getMinimumWidth(); if (rect.contains(eventX, eventY)) { Log.d(TAG, "删除效果"); this.setText(""); } } return super.onTouchEvent(event); } @Override protected void finalize() throws Throwable { super.finalize(); }}
Layout布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" tools:context="com.example.liushuaitao.a01edtitextwithdel.MainActivity"> <com.example.liushuaitao.a01edtitextwithdel.MyEditTextWithDel.EditTextWithDel android:layout_width="300dp" android:layout_height="wrap_content" android:gravity="center_vertical" android:background="@drawable/ed_bg" android:padding="10dp" android:hint="请输入密码"/></RelativeLayout>
1 0
- Android 带删除按钮的EdiText
- android带删除按钮的编辑框
- [Android]带删除按钮的EditText
- Android学习--Android带删除按钮的ListView
- 带删除按钮的ListView
- 带删除按钮的EditText
- 带删除按钮的EditText
- 带删除按钮的EditText
- 带删除按钮的EditText
- 带删除按钮的ListView
- 带删除按钮的 EditText
- android自定义控件(组合控件)--带删除按钮的EditText
- Android自定义右边带删除按钮的EditText
- Android输入框带删除按钮的自定义View
- Android自定义带删除按钮的输入框EditText
- Android EditText 自定义带删除按钮
- Android中EditText带删除按钮
- 带删除按钮的EditText实现
- 2.1详解变量的定义、初始化与赋值
- Java线程简单调用
- 面向对象B/S有关JavaSE总结
- 自定义View基础(二)事件分发机制
- zoj1858
- Android 带删除按钮的EdiText
- 泛型用法
- day08--运算符、流程控制
- VTK修炼之道16:图像处理_窗口分割和图像融合(Viewport&vtkImageBlend)
- 广度优先算法(BFS)
- windows10产品密钥分享
- morphia与spring的整合
- springMVC 注解总结
- 总结简单Java网络编程