Android自定义 edittext,Android自定义控件EditText使用详解

本文实例为大家分享了Android自定义控件EditText的具体代码,供大家参考,具体内容如下

自定义控件分三种:

1. 自绘控件

2. 组合控件

3. 继承控件

代码已上传到 github

以后的自定义控件就都放这个仓库

需求

这里由于项目的需要实现一个自定义EditText,主要实现的为两点,一个是工具图标toolIcon,例如点击清除EditText内容。一个为EditText左边的提示图标hintIcon, 例如输入账号密码时前面的图标。

为了让这个控件的拓展性更高,设置了两个点击事件接口。对于toolIcon来说,默认点击事件为清除EditText内容,如果需要更改,在代码中设设置相关的点击事件即可。

步骤

继承EditText

编写attrs.xml, 创建declare-styleable

编写MyEditText

布局中使用

实现

获取布局文件中设置的属性

这里返回的是一个TypedArray数组,获取之后就可以获得布局文件中设置的属性了

private void init(Context context, AttributeSet attrs) {

TypedArray typedArray = context.getTheme().obtainStyledAttributes(

attrs,

R.styleable.MyEditText,

0, 0);

hintIcon = typedArray.getDrawable(R.styleable.MyEditText_hintIcon);

toolIcon = typedArray.getDrawable(R.styleable.MyEditText_toolIcon);

fixed = typedArray.getBoolean(R.styleable.MyEditText_fixed, true);

if (toolIcon != null && fixed) {

setHeight(toolIcon.getIntrinsicHeight());

}

setCompoundDrawablesWithIntrinsicBounds(hintIcon, null, null, null);

setCompoundDrawablePadding(10);

typedArray.recycle();

onClickListenerWithEditTextToolIcon = new OnClickListenerWithEditTextToolIcon() {

@Override

public void onClick() {

setText("");

}

};

}

设置资源图片

EditText是继承自TextView,在TextView中存在两个方法

setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom)

setCompoundDrawables(left, top, right, bottom)

是设置资源图片的位置

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值