마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

커스텀 뷰를 레이아웃에 적용시키는데 어플이 죽어버립니다. [closed]

0 추천
커스텀뷰를 xml에서 선언하여 사용하려는데 죽어버리네요 ..
 
생성자도 다만들어줬고 
 
패키지명도 복사해서 그대로 넣었는데 애러가납니다 ㅜ
 
프로젝트 패키지명
 
com.example.paint
 
xml 선언
    <com.example.paint.MyPaint
        android:id="@+id/PAINT"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />
 
java 코드 선언
 
class Point {
float x;
float y;
boolean isDraw;
public Point(float x, float y, boolean isDraw) {
this.x = x;
this.y = y;
this.isDraw = isDraw;
}
}
class MyPaint extends View {
public MyPaint(Context context) {
super(context);
setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
this.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch( event.getAction() ) {
case MotionEvent.ACTION_MOVE:
points.add(new Point(event.getX(), event.getY(), true));
invalidate();
break;
case MotionEvent.ACTION_UP:
// points.removeAll(points);
// invalidate();
// break;
case MotionEvent.ACTION_DOWN: 
points.add(new Point(event.getX(), event.getY(), false));
}
return true;
}
});
 
 
 
 
}
 
public MyPaint(Context context, AttributeSet attrs) {
super(context, attrs);
}
 
public MyPaint(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
 
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
p.setColor(a);
 
 
 
p.setStrokeWidth(3);
for(int i=1; i<points.size(); i++) {
if(!points.get(i).isDraw) continue;
canvas.drawLine(points.get(i-1).x, points.get(i-1).y, points.get(i).x, points.get(i).y, p);
// canvas.drawPoint(points.get(i-1).x, points.get(i-1).y, p);
}
}
}
ArrayList<Point> points = new ArrayList<Point>();
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
// MyPaint mp = new MyPaint(this);
setContentView(R.layout.activity_main);
    }
 
 
   
}
 
 
//logCat
 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.paint/com.example.paint.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class com.example.paint.MyPaint
 
 
 
 
질문을 종료한 이유: 해결하였습니다. Activity 를 상속받은 클래스 안에 커스텀 view 클래스를 만들고 xml에 집어넣어서 않된것 같습니다.
익명사용자 님이 2015년 2월 9일 질문
2015년 2월 9일 closed
...