自定义控件(一)自定义EditText

来源:互联网 发布:流行病最新数据 编辑:程序博客网 时间:2024/05/22 12:03

带下边框的EditText

本节要实现:自定义一个带下边框的EditText

1.xml代码中
只需要将标签元素设置成:自定义的 包名+类名 格式。
(不满意默认风格,只需加上:

android:background=”@null”

便注销掉所有默认风格)

<com.wangjiang.ui.SingleLineEditText  android:layout_width="wrap_content"  android:layout_height="40dp"  android:background="@null"  android:hint="请输入文字"  />

2.Java代码示例

package com.wangjiang.ui;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.widget.EditText;/** * 此类用于自定义控件:SingleLineEditText,带下边框的EditText * @author Administrator * */public class SingleLineEditText extends EditText {         private Paint mPaint;  //设置画笔       /**         *          * @param attrs         */         public SingleLineEditText(Context context, AttributeSet attrs) {             super(context, attrs);             // TODO Auto-generated constructor stub             mPaint = new Paint();             mPaint.setStyle(Paint.Style.STROKE);  //设置空心风格           mPaint.setColor(Color.rgb(208, 208, 208));//设置颜色       }         @Override         public void onDraw(Canvas canvas)         {             super.onDraw(canvas);             mPaint.setStrokeWidth((float) 1.6);  //设置空心线宽为2           canvas.drawLine(0,this.getHeight()-1,  this.getWidth()-1, this.getHeight()-1, mPaint); //绘制下边框线       }  }  

—————————————————————————————————————————————————————————————

取消EditText的默认聚焦

取消EditText的默认聚焦
在其父控件属性上加入:

android:focusable="true"android:focusableInTouchMode="true"

或者直接在代码里:

mEditText.clearFocus();

———————————————————————————————————————————————————————-

为EditText设置监听

设置聚焦监听

mEditText.setOnFocusChangeListener(View.OnFocusChangeListener l)

设置文字改变监听:
mEditText.addTextChangedListener(new TextWatcher(){
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
}
});

———————————————————————————————————————————————————-

设置光标位置为最后

mEditText.setSelection(mEditText.getText().toString().length())

———————————————————————————————————————————————————-

设置光标为黑色

给EditText添加属性:

android:textCursorDrawable=”@null”

1 0
原创粉丝点击