안드로이드 개발 질문/답변
(글 수 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>


