Android记事本控件

本篇文章利用Android可以继承控件而写出我们的自定义控件来,要实现我们自定义的记事本控件需要继承android.widget.EditText,并且重写其它onDraw就可以得到自己的编辑框。

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.WindowManager;
import android.widget.EditText;

public class TelEdit extends EditText {
	Context mContext;

	public TelEdit(Context context) {
		super(context);
		mContext = context;
	}

	public TelEdit(Context context, AttributeSet attrs) {
		super(context, attrs);
		mContext = context;
	}

	public TelEdit(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		mContext = context;
	}

	protected void onDraw(Canvas canvas) {
		WindowManager wm = (WindowManager) mContext.getSystemService("window");
		int windowWidth = wm.getDefaultDisplay().getWidth();
		int windowHeight = wm.getDefaultDisplay().getHeight();

		Paint paint = new Paint();
		paint.setStyle(Paint.Style.FILL);
		paint.setColor(Color.BLACK);

		int paddingTop = getPaddingTop();
		int paddingBottom = getPaddingBottom();

		int scrollY = getScrollY();
		int scrollX = getScrollX() + windowWidth;
		int innerHeight = scrollY + getHeight() - paddingTop - paddingBottom;
		int lineHeight = getLineHeight();
		int baseLine = scrollY + (lineHeight - (scrollY % lineHeight));

		int x = 8;
		while (baseLine < innerheight)="" {="" canvas.drawbitmap(line,="" x,="" baseline="" +="" paddingtop,="" paint);="" canvas.drawline(x,="" baseline="" +="" paddingtop,="" scrollx,="" baseline="" +="" paddingtop,="" paint);="" baseline="" +="lineHeight;" }="" super.ondraw(canvas);="" }="" }="">

布局文件:

暂无评论
  • 1:请一针见血的评论。
  • 2:评论需要审核通过后才能显示。
  • 3:评论字数限制在1000字以内。
  • 当前字数:0
热门文章
推荐文章
随机文章
关于本站 - 广告服务 - 版权声明 - 联系我们 - 友情链接 - 网站地图 - 帮助中心