안녕하세요.
Path로 그린 박스안에 EditText를 넣어 하나의 커스텀뷰로 만들고 싶습니다.
어떻게 해야될지 방법이 잘 떠오르지 않네요.
아직 EditText는 넣지 못하였습니다.
선만 그려둔 상태입니다.
도와주세요.
소스첨부드립니다.
package kr.gnu.cs.PathTest;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;
public class TextBlock extends View {
private Paint mPaint=null;
private Path mPath=null;
public TextBlock(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public TextBlock(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public TextBlock(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
super.onLayout(changed, l, t, r, b);
mPaint = new Paint();
mPath = new Path();
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
mPath.moveTo(10, 10 );
mPath.rLineTo(300, 0);
mPath.rLineTo(0, 200);
mPath.rLineTo(-300, 0);
mPath.rLineTo(0, -200);
mPaint.setAntiAlias( true );
mPaint.setStrokeWidth( 5 );
mPaint.setColor( Color.GRAY);
mPaint.setStyle(Paint.Style.STROKE);
canvas.drawPath( mPath, mPaint );
}
}
그린 좌표를 계산하고
레이아웃을 하나 만들어서 계산해 둔 좌표에다가 올린 후
레이아웃 안에 EditText를 넣으면 됩니다.
Canvas에서는 안 될것 같구요.
Canvas위에 AbsoluteLayout을 올려놓고 쓰셔야 할텐데,
이넘이 호환성 이슈로 인해 사용이 중지된 넘이거든요.
물론 사용할 수는 있습니다. 아예 없어지진 않을 것 같군요.