手记

自定义EditText实现登陆

写自定义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.实现效果:

原文链接:http://www.apkbus.com/blog-784586-62824.html

0人推荐
随时随地看视频
慕课网APP