写自定义Edittext的目的就是为了实现和5.0以后提出来的TextInputLayout;实现登陆一个效果
1.特别是老项目在eclipse中开发的实现的登陆页面
2.自定义Edittext实现一条直线
实现代码:
1.写一个类继承EditText
public class LineEditText extends EditText{ private Paint paint; private float lineWidth;//横线宽度 public LineEditText(Context context, AttributeSet attrs) { super(context, attrs); //设置画笔的属性 paint = new Paint(); paint.setStyle(Paint.Style.STROKE); //可以自定义画笔的颜色 paint.setColor(Color.BLACK);//黑色 lineWidth = 3f;//宽度为2 paint.setStrokeWidth(lineWidth); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawLine(0, this.getHeight()-2, this.getWidth()-2, this.getHeight()-2, paint); } }
2.调用1中的类名(要全路径):
<com.hanwei.dust.view.LineEditText //全路径 android:id="@+id/account" android:layout_width="match_parent" android:layout_height="wrap_content" android:drawableLeft="@drawable/ic_name" android:drawablePadding="16dp" android:hint="用户名" android:maxLines="1" android:background="@null" android:singleLine="true" android:textColor="#ffffff" />
3.一定要加上,为了和原有的Edittext重合:
android:background="@null"
4.在代码中调用即可:
mAccount = (LineEditText) findViewById(R.id.account);
5.实现效果: