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

안드로이드 myview 질문드립니다.

0 추천

Myview 클래스 만들어서 사용하고 습니다.

근데 activity_main.xml에서 이렇게 추가해서 Myview를 그려줄려고하는데

음조언좀 부탁드려요 계속 오류가 나네요

 

//xml부분

<com.example.lock.Lock_Main.Myview
android:id="@+id/my1"
android:layout_width="300dip"
android:layout_height="300dip"
android:layout_gravity="center" />

 

 

 

//Myview

public class Myview extends View {
public Myview(Context context) {
super(context);
}

public void onDraw(Canvas canvas) {

if (isTouchDown) {
pt.setColor(Color.BLUE);
canvas.drawCircle(touchX, touchY, 20, pt);
}
}

 

//oncreate

Myview mv =(Myview)findViewById(R.id.my1);

이렇게 호출하는데 도움좀 부탁드려요 ㅠ

기존에 있던 부분에서는 잘됩니다. 하지만 여기서 버튼을 추가해서 보여줄려고하는데

뷰가 전체를 그려줘서 안되서 사이즈를 정하고 싶은데 그게잘안되네요 ㅠ 부탁드립니다.

글쉥 (430 포인트) 님이 2013년 7월 1일 질문

1개의 답변

+1 추천
 
채택된 답변

View를 상속받은 커스텀뷰를 xml 상에서 쓰려고 하신다면 다음과 같은 생성자를 

추가해주셔야 합니다.

public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
 
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
 
Gradler (109,780 포인트) 님이 2013년 7월 1일 답변
글쉥님이 2013년 7월 1일 채택됨
조금만더 쉽게 설명해주시면 안될까여
생성자를 왜 추가해야 되는지 잘모르겟습니다.
조금 이해가 잘안되네요
public Myview(Context context) {
super(context);
}
위 생성자만 넣으면 코드상에서밖에 Myview를 생성할 수 밖에 없습니다.
Myview를 xml에서 정의하고 setContentView로 연결 시키기 위해서는
제가 위에 적어드린 두가지 생성자를 추가해야 합니다.
...