<强> Android仿支付宝的密码均分输入框强>
此为安卓项目,通过重绘edittext进行文字的均分排布。
直接贴上代码:
包com.xxx.xxx; 进口android.content.Context; 进口android.graphics.Canvas; 进口android.graphics.Color; 进口android.graphics.Paint; 进口android.graphics.Rect; 进口android.text.Editable; 进口android.text.Selection; 进口android.text.TextWatcher; 进口android.util.AttributeSet; 进口android.view.ViewGroup; 进口android.widget.EditText;/* * *此控件为均分输入框控件 *使用说明:XML文件中设置好文字大小,设置好宽度。高度使用wrap_content更佳,亦可设置固定高度 *(随着输入的行数变化会导致高度成倍增加) *允许设置每行显示的文字个数 *允许设置最多显示多少行 *允许设置密码符显示 *允许设置多行输入 * *由2015/10/22曰。 */公开课ExcelEditView EditText{延伸 私人int mMaxLength=6;//一行显示的最大字符数 私人int mColorId=Color.BLACK;//字体颜色 私人布尔isPassword=false;//是否需要显示密码符 私人浮动mHeight f=0.0;//默认情况的高度 私人int mMaxLine=0;//最大的行数:如果为0,- - -表示支持多行输入不为0,则为该行 公共ExcelEditView(上下文语境){ 超级(上下文); init (); } 公共ExcelEditView(上下文语境,AttributeSet集){ 超级(上下文,设置); init (); } 私人空间init () { 这一点。addTextChangedListener(新TextWatcher () { @Override 公共空间beforeTextChanged (CharSequence进行年代,int, int数,int后){ } @Override 公共空间onTextChanged (CharSequence进行年代,int, int, int数){//TODO自动生成方法存根 可编辑的编辑=ExcelEditView.this.getText (); int len=editable.length (); 如果(mMaxLine比;0,,len祝辞mMaxLength * mMaxLine) { int selEndIndex=Selection.getSelectionEnd(可编辑); 字符串str=editable.toString (); 字符串newStr=str.substring (0, mMaxLength * mMaxLine); ExcelEditView.this.setText (newStr); 可编辑=ExcelEditView.this.getText ();//新字符串的长度 int newLen=editable.length ();//旧光标位置超过字符串长度 如果(selEndIndex比;newLen) { selEndIndex=editable.length (); }//设置新光标所在的位置 选择。setSelection(可编辑,selEndIndex); } } @Override 公共空间afterTextChanged(可编辑){ } }); } 公共空间setIsPassword(布尔isPassword) { 这一点。isPassword=isPassword; } 公共空间setmMaxLine (int) { 这一点。mMaxLine=线; } 公共空间setmMaxLength (int愣){ 这一点。mMaxLength=愣; } @Override 公共空间setTextColor (int颜色){ super.setTextColor(颜色); mColorId=颜色; } @Override 保护无效onDraw(帆布画布){ .toString char [] txt=this.getText () () .toCharArray ();//取出字符数组 int txtLine=getLineFromCharArray (txt);//计算有多少行 如果(mMaxLine比;0,,txtLine祝辞mMaxLine){//进行行数的上限处理 txtLine=mMaxLine; } 如果(this.isPassword){//密码符的转义 for (int i=0;iAndroid实现仿支付宝的密码均分输入框