package androidbee.view.custom.textview; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Typeface; import android.util.AttributeSet; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.widget.EditText; public class CustomEditText extends EditText { private Paint linePaint; float mFontSize; String mText; private Typeface mType; private int view_width; private int view_height; public CustomEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public CustomEditText(Context context, AttributeSet attrs) { super(context, attrs); init(); } public CustomEditText(Context context) { super(context); init(); } private void init() { // 초기 설정 변수들을 정의한다. linePaint = new Paint(Paint.ANTI_ALIAS_FLAG); linePaint.setColor(0xFF0000FF); // mFontSize = getTextSize(); // mText = getText().toString(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); this.view_width = widthMeasureSpec; this.view_height = heightMeasureSpec; } @Override protected void onDraw(Canvas canvas) { // TextView 기본 클래스를 사용해 평소처럼 테스트를 랜더링한다. // TextView의 배경색을 칠한다. canvas.drawColor( 0xAAFFFF99); // TextView의 세로 괘선을 그린다. canvas.drawLine( 20, 0, 20, this.view_height, linePaint); // Text를 여백 바로 다음부터 출력되도록 이동시킨다. canvas.save(); canvas.translate(20, 0); super.onDraw(canvas); // 텍스트 앞에 나타낼 것들을 캔버스에 그린다. canvas.restore(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return super.onKeyDown(keyCode, event); } }