通过输入框中字符串的像素长度限制输入文字长度
来源:互联网 发布:relieff算法原理 编辑:程序博客网 时间:2024/05/29 14:29
开发过程经常遇到要输入用户名等类似要限制输入字数的要求,我们可以用InputFilter来实现,
下面是继承的InputFilter:
- public class MyInputFilter implements InputFilter {
- private Paint mPaint; //注意这是画笔
- private int mMaxWidth;
- private static final String TAG = "MyInputFilter";
- private int EDIT_WIDTH = 280;
- private int mPadding = 10;
- public MyInputFilter(Paint paint, int maxWidth) {
- if (paint != null) {
- mPaint = paint;
- } else {
- mPaint = new Paint();
- mPaint.setTextSize(30F);
- }
- if (maxWidth > 0) {
- mMaxWidth = maxWidth - mPadding;
- } else {
- mMaxWidth = EDIT_WIDTH;
- }
- }
- @Override
- public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
- //返回宽度,目测是像素数Return the width of the text.
- float w = mPaint.measureText(dest.toString() + source.toString());
- if (w > mMaxWidth) {
- return "";
- }
- return source;
- }
- }
这样来使用它:
- /*
- * Set edit text input max length constraint to border.
- */
- public static void setEditTextFilter(EditText edit) {
- int width = edit.getWidth();
- Utils.log("Uitls", "edit width = " + width);
- Paint paint = new Paint();
- paint.setTextSize(edit.getTextSize());
- InputFilter[] filters = { new MyInputFilter(paint, width) };
- edit.setFilters(filters);
- }
用这样方法的优点是可以用在多个输入框中,可是有个缺点是当用联想输入法一次输入较长的中文词语或英文单词后,不会自动截断词语或单词。
(转载,,未测)
0 0
- 通过输入框中字符串的像素长度限制输入文字长度
- 输入框禁止输入特殊字符串,限制输入文字长度
- 限制文字框输入长度的JS
- JS 限制输入框的文字长度
- Android中限制EditText(输入框)文字输入长度
- 如何限制UITextField 输入文字的长度?
- 限制输入文字长度最好的方法
- 限制UITextField 输入文字的长度
- js限制输入文字长度
- UITextView输入文字长度限制
- 输入长度的限制
- EditText限制输入字符串长度
- textarea中限制输入长度
- [C#] TextBox限制输入长度(中文字算2码)
- UITextField限制输入的长度,UITextView限制输入的长度
- 限制输入框的长度(汉字解决方案)
- 限制输入框的长度(汉字解决方案)
- iOS 限制输入框的字符长度
- 一个大的含有50M个URL的记录,一个小的含有500个URL的记录,找出两个记录里相同的URL。
- scala_mark_001
- JavaEE技术一些简单介绍
- gdb常用命令
- IOS线程数据篇2之多线程:NSThread NSOperation GCD(一)
- 通过输入框中字符串的像素长度限制输入文字长度
- SpringMVC项目中web.xml中的节点加载顺序问题
- 机器学习之开源库大总结
- android线控广播/长按功能开发总结
- SAE
- 数据结构和算法系列17 图
- Android之system_server与zygote之作用
- 【畅言】从“码农”说起
- kali中ARP欺骗与MITM(中间人攻击)(一)