layout을 이용하여 이미지뷰를 띄었습니다.
이미지뷰 안에 drawable을 이용 밑그림 사진을 넣어놓았습니다.
--->layout activity_main.xml 파일
액티비티에 layout화면을 띄우고, 그 위에 밑그림 사진 크기와 맞는 canvas를 띄워서
(1) 밑그림 사진에서 어떤 곳을 터치하면 터치한 곳에 동그라미가 그려지게 하고싶습니다.
또는 (2) 밑그림 사진에서 터치하면 터치한 영역을 빨간색으로 색칠하고 싶습니다.
onCreate에서 setContentView(R.id.activity_main)
onDraw함수를 만들어 Canvas 생성하고 그 위에 그림을 그릴 수 있게 표시하고싶었는데
하다가 잘 안되서 일단 이미지 위에 빨간 동그라미를 나타내자 라는 생각으로 코딩을 하였습니다.
빌드에 에러는 없고, 애뮬레이터를 통해서 구동하면 화면이 잘 나옵니다.
거기까지 되고 onDraw는 아예 보이지가 않습니다.
한번 보시고 어떤 부분이 잘못되서 onDraw가 안 먹히는지 봐주세요.
[activity_main.xml]
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
xmlns:tools=http://schemas.android.com/tools
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.testcanvas.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/ImageView1"
android:layout_width="match_parent"
android:layout_height="350sp"
android:background="@drawable/image1" />
</LinearLayout>
~~사이에 LinearLayout으로 버튼 두개 존재(앞 뒤 액티비티를 오가는 버튼코딩(ex) 이전, 다음)
</LinearLayout>
[res/drawable]
image1.png 파일 존재
[MainActivity.java]
package com.example.testcanvas;
import~~; 필요한 것들
public class MainActivity extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
protected void onDraw(Canvas canvas){
Bitmap newImage=Bitmap.createBitmap(200,200,Bitmap.Config.ARGB_8888);
Canvas c=new Canvas(newImage);
c.drawCircle(100,100,40,new Paint());
canvas.drawBitmap(newImage,10,10,new Paint());
}
}