带有图标和删除符号的可编辑输入框,用户可以自定义传入的显示图标
来源:互联网 发布:北京金山软件大厦 编辑:程序博客网 时间:2024/05/17 22:48
package com.netease.nim.uikit.common.ui.widget;import android.content.Context;import android.graphics.drawable.Drawable;import android.text.Editable;import android.text.TextWatcher;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.EditText;import com.netease.nim.uikit.R;/** * 带有图标和删除符号的可编辑输入框,用户可以自定义传入的显示图标 * * @author * */public class ClearableEditTextWithIcon extends EditText implements OnTouchListener, TextWatcher { // 删除符号 Drawable deleteImage = getResources().getDrawable(R.drawable.nim_icon_edit_delete); Drawable icon; public ClearableEditTextWithIcon(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public ClearableEditTextWithIcon(Context context, AttributeSet attrs) { super(context, attrs); init(); } public ClearableEditTextWithIcon(Context context) { super(context); init(); } private void init() { ClearableEditTextWithIcon.this.setOnTouchListener(this); ClearableEditTextWithIcon.this.addTextChangedListener(this); deleteImage.setBounds(0, 0, deleteImage.getIntrinsicWidth(), deleteImage.getIntrinsicHeight()); manageClearButton(); } /** * 传入显示的图标资源id * * @param id */ public void setIconResource(int id) { icon = getResources().getDrawable(id); icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight()); manageClearButton(); } /** * 传入删除图标资源id * @param id */ public void setDeleteImage(int id) { deleteImage = getResources().getDrawable(id); deleteImage.setBounds(0, 0, deleteImage.getIntrinsicWidth(), deleteImage.getIntrinsicHeight()); manageClearButton(); } void manageClearButton() { if (this.getText().toString().equals("")) removeClearButton(); else addClearButton(); } void removeClearButton() { this.setCompoundDrawables(this.icon, this.getCompoundDrawables()[1], null, this.getCompoundDrawables()[3]); } void addClearButton() { this.setCompoundDrawables(this.icon, this.getCompoundDrawables()[1], deleteImage, this.getCompoundDrawables()[3]); } @Override public boolean onTouch(View v, MotionEvent event) { ClearableEditTextWithIcon et = ClearableEditTextWithIcon.this; if (et.getCompoundDrawables()[2] == null) return false; if (event.getAction() != MotionEvent.ACTION_UP) return false; if (event.getX() > et.getWidth() - et.getPaddingRight() - deleteImage.getIntrinsicWidth()) { et.setText(""); ClearableEditTextWithIcon.this.removeClearButton(); } return false; } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { ClearableEditTextWithIcon.this.manageClearButton(); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { }}
0 0
- 带有图标和删除符号的可编辑输入框,用户可以自定义传入的显示图标
- 删除图标资源后还是可以显示图标的疑惑
- 安卓自定义带删除图标的输入框EditView
- 安卓自定义带删除图标的输入框EditView
- XEditText:带删除功能的EditText;可设置自动添加分隔符分割电话号码、银行卡号等;支持禁止Emoji表情符号输入;自定义右边显示图标作功能选项;仿iOS输入框风格
- 一个可以左右滑动分页显示的例子(并带有页面图标指示)
- 自定义tableView编辑样式的图标
- Android自定义View-带删除和搜索图标的EditText
- [自定义控件]带有删除按钮的输入框
- html设置自定义的网站图标和被收藏时显示的图标
- 自定义带删除图标的EditText
- 如何根据异步调用返回数据控制编辑删除等图标的显示
- 可替换的图标
- Android进阶——GridView实现可长按item显示可删除的小图标的UI
- GridView实现可长按item显示可删除的小图标的UI
- html 输入框显示“小叉叉”的清空图标
- 可编辑ztree节点的增删改功能图标控制
- 自定义View实现输入框后附加删除小图标
- DropBoxManager
- QT4.8.5+qt-vs-addin-1.1.11+VS2010安装配置和QT工程的新建和加载
- UEFI PROTOCOL LINK LIST
- [CF86D]Powerful array
- ActiveMQ的集群与高可用
- 带有图标和删除符号的可编辑输入框,用户可以自定义传入的显示图标
- 【蓝鸥科技】声明
- Activity class {package/class} does not exist 解决方法
- python3练习题--九九乘法表
- 定位多线程内存越界问题实践总结
- Android WebView的Js对象注入漏洞解决方案(JSBridge存在的意义)
- 我的caffe学习之路<第一天>
- windows安装caffe
- Android modem log查看