1、常用属性

        <!--selectAllOnFocus  获得焦点后全选组件内所有文本内容-->
<!--inputType 限制输入方式-->
<!--singleLine 是否单行显示-->
<!--maxLines 最大行数超过文本自动上滚-->
<!--scaleX scaleY 文字间隔-->
<!--layout_marginLeft 控件自身左边偏移-->
<!--paddingLeft 控件内部内容左边偏移-->
<!--hint 提示语-->
<!--textColorHint 提示语颜色-->
<!--enabled 输入框是否可编辑-->
<!--imeOptions 修改'完成'样式-->
<!--textCursorDrawable 设置光标 null隐藏光标和字体颜色一致-->
<!--background 背景图片-->
<!--drawableBottom 通过shape自定义下划线-->

2、简单使用

layout布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".LoginActivity"> <!--selectAllOnFocus 获得焦点后全选组件内所有文本内容-->
<!--inputType 限制输入方式-->
<!--singleLine 是否单行显示-->
<!--maxLines 最大行数超过文本自动上滚-->
<!--scaleX scaleY 文字间隔-->
<!--layout_marginLeft 控件自身左边偏移-->
<!--paddingLeft 控件内部内容左边偏移-->
<!--hint 提示语-->
<!--textColorHint 提示语颜色-->
<!--enabled 输入框是否可编辑-->
<!--imeOptions 修改'完成'样式-->
<!--textCursorDrawable 设置光标 null隐藏光标和字体颜色一致-->
<!--background 背景图片-->
<!--drawableBottom 通过shape自定义下划线-->
<com.example.xianfengzhang.myapplication.EditTextDelete
android:id="@+id/edit11"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:inputType="none"
android:selectAllOnFocus="true"
android:singleLine="false"
android:minLines="1"
android:maxLines="3"
android:scaleX="1"
android:scaleY="1"
android:layout_marginLeft="5dp"
android:paddingLeft="5dp" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit22"
android:hint="这是提示语……"
android:textColorHint="@color/colorPrimaryDark"
android:enabled="true"
android:imeOptions="actionSearch"
android:textCursorDrawable="@drawable/edit_cur_values"
android:background="@null"
android:drawableBottom="@drawable/edit_down_values"
/> </LinearLayout>

自定义的 EditTextDelete

package com.example.xianfengzhang.myapplication;

import android.annotation.SuppressLint;
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 java.util.jar.Attributes; /**
* Created by xianfengzhang on 2017/12/14.
*/ public class EditTextDelete extends android.support.v7.widget.AppCompatEditText { private final static String TAG = "EditTextDelete";
private Drawable imgInable;
private Drawable imgAble;
private Context mContest; public EditTextDelete(Context context){
super(context);
mContest = context;
init();
}
public EditTextDelete(Context context, AttributeSet attrs) {
super(context, attrs);
mContest = context;
init();
} public EditTextDelete(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mContest = context;
init();
} private void init(){ imgInable = mContest.getDrawable(R.drawable.del);
addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override
public void afterTextChanged(Editable editable) {
setDrawable();
}
});
setDrawable();
} private void setDrawable(){
if (length()<1)
setCompoundDrawablesWithIntrinsicBounds(null,null,null,null);
else
setCompoundDrawablesWithIntrinsicBounds(null,null,imgInable,null); }
@Override
public boolean onTouchEvent(MotionEvent event) {
if (imgInable != 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();
getGlobalVisibleRect(rect);
rect.left = rect.right - 100;
if (rect.contains(eventX, eventY))
setText("");
}
return super.onTouchEvent(event);
} @Override
protected void finalize() throws Throwable{
super.finalize();
} }

效果图

Android基础控件EditText的更多相关文章

  1. android 基础控件 EditText

    EditText 简介: EditText 控件继承 TextView ,它有TextView的所有属性和方法,并且自身是可编辑的: extends TextView java.lang.Object ...

  2. Android基础控件ListView基础操作

    1.简介 基于Android基础控件ListView和自定义BaseAdapter适配器情况下,对ListView的数据删除和添加操作: public boolean add(E e) {//添加数据 ...

  3. android 基础控件(EditView、SeekBar等)的属性及使用方法

        android提供了大量的UI控件,本文将介绍TextView.ImageView.Button.EditView.ProgressBar.SeekBar.ScrollView.WebView ...

  4. 矩阵, 矩阵 , Android基础控件之ImageView

    天下文章大家抄,以下所有内容,有来自copy,有来自查询,亦有自己的总结(目的是总结出自己的东西),所以说原创,不合适,说是转载也不恰当,所以我称之为笔记,可惜没有此分类选项,姑且不要脸一点,选择为原 ...

  5. Android输入控件EditText和软键盘监听

    1. 跳转到新的页面自动软键盘显示情况: 在配置清单文件AndroidManifest.xml文件,对Activity的windowSoftInputMode属性进行设置. stateUnspecif ...

  6. android基础控件的使用

    控件在屏幕上位置的确定 通常情况下控件在屏幕上确定至少要连接两条线(一条水平,一条垂直) 如下图连接了四条线 辅助线 辅助线的调出: 水平辅助线:进入activity.xml的设计模式之后如下图 为了 ...

  7. Android 基础控件 TextView

    一TextView介绍: TextView是UI最基本的组件,使用TextView可以显示丰富的文本信息.设置添加TextView最常见的方法就是在xml中添加TextView元素,并指定属性.Tex ...

  8. Android基础控件TextClock和Chronometer的使用

    1.简介 DigitalClock, TextClock,AnalogClock,Chronometer其中DigitalClock和AnalogClock废弃了! TextClock是在Androi ...

  9. Android基础控件ProgressBar进度条的使用

    1.简介 ProgressBar继承与View类,直接子类有AbsSeekBar和ContentLoadingProgressBar, 其中AbsSeekBar的子类有SeekBar和RatingBa ...

随机推荐

  1. python 16 文件操作(二)

    转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...

  2. 批量调用百度地图API获取地址经纬度坐标

    1 申请密匙 注册百度地图API:http://lbsyun.baidu.com/index.php?title=webapi 点击左侧 “获取密匙” ,经过填写个人信息.邮箱注册等,成功之后在开放平 ...

  3. ES6 学习 -- 字符串模板

    ES5及以前,动态操作dom结构时,要多个字符串和变量拼接,如果不换行处理,则需要写很长的代码,不利于阅读理解,如果进行换行写入,则需要一堆的"+"号来连接文本与变量,写起来非常麻 ...

  4. Number浮点数运算详解

    文章来自我的 github 博客,包括技术输出和学习笔记,欢迎star. 一道题 0.1 + 0.2 = ? 在浏览器中测试下计算结果,得到的结果是 0.30000000000000004,并不是理想 ...

  5. arm-linux-gcc 的使用

    1. 编译 C 文件,生成 elf 可执行文件 h1.c 源文件 #include <stdio.h> void hellofirst(void) { printf("The f ...

  6. docker ps -a

    1 pwd 2 mkdir data 3 ll 4 uname -n 5 cd data/ 6 ll 7 pwd 8 ll 9 wget -N --no-check-certificate https ...

  7. 浏览器自带记忆功能,使input颜色和字体丢失

    方法一 : 会有视觉上颜色的变化input:-internal-autofill-selected { /*内置阴影填充 背景颜色*/ box-shadow: inset 0 0 0 1000px # ...

  8. Android开发 如何最优的在Activity里释放资源

    前言 当前你已经入门Android开发,开始关注深入的问题,你就会碰到一个Android开发阶段经常碰到的问题,那就是内存泄漏. 其实大多数Android的内存泄漏都是因为activity里的资源释放 ...

  9. MQTT--笔记

    一.MQTT协议基本介绍 1.1.MQTT是什么? MQTT,全称为Message Queue Telemetry Transport.在1999年,由IBM的Andy Stanford-Clark和 ...

  10. matplotlib实现伪彩色图像和色度条的展现

    灰度图显示为伪彩色图 法一 import matplotlib.pyplot as plt img = plt.imread('C:/Users/leex/Desktop/lena.jpg') img ...