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; public class CustomTextView extends View { private Paint linePaint; float mFontSize; String mText; private Typeface mType; public CustomTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public CustomTextView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public CustomTextView(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 onDraw(Canvas canvas) { // TextView 기본 클래스를 사용해 평소처럼 테스트를 랜더링한다. // TextView의 배경색을 칠한다. canvas.drawColor( 0xAAFFFF99); // TextView의 세로 괘선을 그린다. canvas.drawLine( 20, 0, 20, 100, 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); } }