好用的开源库(一)——MaterialEditText
GIthub地址:https://github.com/rengwuxian/MaterialEditText#features
使用文档:
在android新推出的Material Design中对文本输入框的样式提供了标准,并且在AppCompat v21 中提供了Material Design的空间外观支持,如下图:

不过该控件在使用的过程中比较繁琐,需要通过为控件定制theme的方式来实现自定义控件颜色,并且并没有提供Material Design中提到的特性,因此,为了使用实现该特性效果,我们可以使用rengwuxian在github推出的库MaterialEditText.来实现
使用方法:
首先引用库
compile ‘com.rengwuxian.materialedittext:library:2.1.4’
基本使用
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Basic"/>
- 1
- 2
- 3
- 4
自定义颜色
修改输入的字体颜色
app:met_baseColor="#0056d3"
- 1
- 修改输入框的颜色
app:met_primaryColor="#982360"
- 1
- 在Material Design中另一个新特新就是在EditText输入时,hint内容将缩小位移到输入框上方
而在MaterialEditText中同样实现了该功能Floating Label
app:met_floatingLabel="normal"
- 1
app:met_floatingLabel="highlight"
- 1
- 2
- 3
app:met_floatingLabelText="XXX"
- 1
- 2
met_floatingLabelText方法需要配合上面两个参数才能生效
<com.rengwuxian.materialedittext.MaterialEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:met_baseColor="#0056d3"
app:met_primaryColor="#982360"
app:met_floatingLabelText="aaaaaa"
app:met_floatingLabel="normal"
android:hint="Basic"/>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
底部省略号
当设置底部省略号后,控件会在文字向左滚动时,在底部显示一个三个点的胜率号,这个方法会自动将android:singleLine设置为true
app:met_singleLineEllipsis="true"
- 1
字符数限制
设置字符数限制后,控件右下角会显示已输入字符数和最大字符数的角标,并在超过限制后显示警告色(默认为红色).
//设置警告色:
app:met_errorColor="#000000"
//设置最多字数和最小字数
app:met_minCharacters="5"
app:met_maxCharacters="10"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- Helper Text和Error Text
helper Text 通过xml中
app:met_helperText="Integer"
- 1
Error Text需要动态调用
setError(CharSequence error)
- 正则表达式检查:
validationEditText.isValid("\\d+");
- 1
- 带有报错字符串的正则表达式检查:
validationEditText.validate("\\d+", "Only Integer Valid!");
- 1
- 自定义accent typeface 字体
app:met_accentTypeface="fonts/Roboto-LightItalic.ttf"
- 1
列表内容
Hide UnderLine
删除默认的下划线
app:met_hideUnderline="true"
- 1
字符串检查
检查后,如果有错,将自动调用 setError() 方法来提示错误。
单一条件检查:
et.validateWith(new RegexpValidator("Only Integer Valid!", "\\d+"));
- 1
复合条件检查:
et.addValidator(new CustomValidator1())
.addValidator(new CustomValidator2())
.addValidator(new RegexpValidator("Only Integer Valid!", "\\d+"));
- 1
- 2
- 3
放置图片
在输入框左右放置图片,默认图片和输入框之间的距离为16dp
可以通过met_iconPadding设置
app:met_iconLeft="@mipmap/ic_launcher"
app:met_iconRight="@mipmap/ic_launcher"
- 1
- 2
显示清空输入框btn
app:met_clearButton= “true”
- 全部参数
- 通用颜色
met_baseColor: 底部横线和所有文字在无焦点状态的基础色。默认为黑色。
met_primaryColor: 底部横线和 Floating label 的高亮色(如果 met_floatingLabel 设置为 highlight 的话)。默认使用 baseColor。
met_textColor: 和自带的 android:textColor 作用相同。换用这个就好。
met_textColorHint: 和自带的 android:textColorHint 作用相同。换用这个就好。
met_underlineColor: 自定义底部横线的颜色。
-Floating label
met_floatingLabel: Floating label 应该怎样被展示。选项有:none, normal, highlight。 默认是 none.
met_floatingLabelText: 自定义 floating label 的文字。
met_floatingLabelTextSize: Floating label 的字体大小。默认为 12sp。
met_floatingLabelTextColor: Floating label 的字体颜色。默认为半透明的 baseColor.
met_floatingLabelPadding: Floating label 和主文字区域的间隔。
met_floatingLabelAnimating: 是否使用动画来显示和消失 floating label 。默认为 true 。
met_floatingLabelAlwaysShown: 是否总是显示 Floating label 。默认为 false 。 - 字数限制
met_minCharacters: 限制的最少字数。默认为0。
met_maxCharacters: 限制的最大字数。0为无限制。默认为0.
-Helper/Error text
met_helperText: 底部的 helper text。
met_helperTextAlwaysShown: 是否总是显示 helper text, 而不仅仅是在获得焦点状态时。默认为 false。
met_helperTextColor: Helper text 的字体颜色。
met_errorColor: Error text 的字体颜色。
met_bottomTextSize: 底部文字(Helper/Error text)的字体大小。默认为12sp。
met_minBottomTextLines:底部为文字预留的行数,不管是否有 Helper/Error text 正在显示。 - 字体(Typeface)
met_typeface: 主文字的字体.
met_accentTypeface: 辅助文字的字体.
Material Design 风格的左右图标
met_iconLeft: 左边的图标.
met_iconRight: 右边的图标.
met_iconPadding: 图标和主区域之间的padding。默认为16dp, 遵守 Google’s Material Design Spec 中的建议. - Others
met_hideUnderline: 是否隐藏底部横线。默认为 false。
met_autoValidate: 是否自动检查字符串。默认为 false。
met_singleLineEllipsis: 是否在文字超长时显示底部的省略号。默认为 false。
met_clearButton: 是否显示用来清空文字的 Clear button 。默认为 false。
好用的开源库(一)——MaterialEditText的更多相关文章
- 100个Github上Android开源库
项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, ...
- Android主流UI开源库整理(转载)
http://www.jianshu.com/p/47a4a7b99364 标题隐含了两个层面的意思,一个是主流,另一个是UI.主流既通用,一些常规的按钮.Switch.进度条等控件都是通用控件,因此 ...
- GitHub上排名前100的Android开源库介绍(来自github)
本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...
- GitHub Top 100的Android开源库
摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best M... 本项目主要对目前 GitH ...
- GitHub 上排名前 100 的 Android 开源库进行简单的介绍
若有任何疑问可通过邮件或微博联系我 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开 ...
- GitHub开源库排名一百的简单介绍,值得收藏!
GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitHub ...
- 我的Android进阶之旅】GitHub 上排名前 100 的 Android 开源库进行简单的介绍
GitHub Android Libraries Top 100 简介 本文转载于:https://github.com/Freelander/Android_Data/blob/master/And ...
- <Android开源库 ~ 1> GitHub Android Libraries Top 100 简介
转载自GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitH ...
- GitHub上排名前100的Android开源库介绍
GitHub上排名前100的Android开源库介绍 文章来源: http://www.open-open.com/news/view/1587067#6734290-qzone-1-31660-bf ...
- Android(常用)主流UI开源库整理
这几天刚做完一个项目..有点空余时间,就想着吧这一两年做的项目中的UI界面用到的一些库整理一下.后来想了一下,既然要整理,就把网上常用的 AndroidUI界面的主流开源库 一起整理一下,方便查看. ...
随机推荐
- C语言复习3_条件结构
if条件结构 if else 结构一般处理区间情况 #include <stdio.h> #include <stdlib.h> int main() { //打印剧情 dou ...
- MySQL 5.7 安装指南
1.下载1)进⼊入官⽹网下载5.7.23压缩包 下载地址:https://dev.mysql.com/downloads/mysql /5.7.html#downloads 2.安装与配置 1)将下载 ...
- 深入解析Java反射基础
博客原文:http://www.sczyh30.com/posts/Java/java-reflection-1/ - 这老哥写的特别好 一.回顾:什么是反射? 反射(Reflection)是Java ...
- 香港,将军澳,TKO,服务器,运维,机房,云清洗
目前香港到大陆速度最快.最稳定线路之一. 线路也是唯一华南华北一样快速的线路,是100%的“双线”,不存在其他香港线路网通访问比电信慢的问题. (香港)将军澳TKO机房网络速度快捷,机房内部环境配有意 ...
- 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识
第25章 DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...
- 利用Python实现对Web服务器的目录探测
今天是一篇提升技能的干货分享,操作性较强,适用于中级水平的小伙伴,文章阅读用时约3分钟. PART 1/Python Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python ...
- 发一些Java面试题,上海尚学堂Java学员面试遇到的真题,值得学习
1. 下面哪些是Thread类的方法() A start() B run() C exit() D getPriority() 答案:ABD 解析:看Java AP ...
- Python 爬虫入门(二)——爬取妹子图
Python 爬虫入门 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob ...
- [Swift]LeetCode331. 验证二叉树的前序序列化 | Verify Preorder Serialization of a Binary Tree
One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, ...
- [Swift]LeetCode832. 翻转图像 | Flipping an Image
Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resu ...