안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 대학교에서 안드로이드 공부중인 한 학생입니다.
한빛소프트에서 나온 안드로이드 프로그래밍 정복이라는 책을 보면서 공부하고 있는데요
캔버스 응용에서 막히네요
주된 소스의 내용은 책에 있는 내용들입니다.
화면 레이아웃은
맨 위에
이미지 보이기(버튼) 이미지 안보이기(버튼) 원(버튼, 클릭하면 원 나타남) 사각형(버튼)
이미지
원(캔버스에 그린것) 사각형(캔버스에 그린것)
이런식으로 배치하려고 하는데요
캔버스에 그린 도형을 main.xml에 어떻게 배치해야 되는지 모르겠네요
인터넷에 있는 내용들을 참고해서 해보기는 햇는데 실행 오류가 나네요.
java소스 파일입니다.
public class jjava_exam extends Activity {
View catch_img; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = (LinearLayout)findViewById(R.id.drawlayout);//이부분과 아래부분이추가한 부분입니다. MyView vw = new MyView(this); layout.addView(vw); // 인터넷에서 찾아보고 추가한 부분입니다. 이 부분에서 컴파일 오류는 나지 않는데 실행 오류가 나네요 setContentView(R.layout.main); catch_img = findViewById(R.id.ima); findViewById(R.id.visible).setOnClickListener(mClickListener); findViewById(R.id.invisible).setOnClickListener(mClickListener); } protected class MyView extends View{ public MyView(Context context){ super(context); } public void onDraw(Canvas canvas){ // 삼각형 그리는 부분 아직 사각형은 그리지 않았습니다. canvas.drawColor(Color.LTGRAY); Paint Pnt=new Paint(); Pnt.setColor(Color.BLUE); canvas.drawCircle(100, 100, 80, Pnt); } } Button.OnClickListener mClickListener = new Button.OnClickListener(){ public void onClick(View v){ switch(v.getId()){ case R.id.visible: catch_img.setVisibility(View.VISIBLE); break; case R.id.invisible: catch_img.setVisibility(View.INVISIBLE); break; } } }; }
main.xml소스입니다.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" > <LinearLayout android:orientation="horizontal" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/visible" android:layout_width="120px" android:layout_height="wrap_content" android:singleLine="false" android:text="이미지 보이기" /> <Button android:id="@+id/invisible" android:layout_width="120px" android:layout_height="wrap_content" android:singleLine="false" android:text="이미지 안보이기" /> <Button android:id="@+id/circle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="원" /> <Button android:id="@+id/rect" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="사각형" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:visibility="visible" > <ImageView android:id="@+id/ima" android:src="@drawable/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:id="@+id/drawlayout" android:orientation="horizontal" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" > </LinearLayout> </LinearLayout>