안녕하세요^^
개발하다가~ 질문이 있어서
더 실력있는 개발자분의 정보를 얻고자 글 남깁니다. ^^
아이콘 및 막대 그래프를 그리려고 하는데~
★(아이콘) ■■■□□ (막대그래프) 이런식으로...
전체 레이아웃 영역 중에 그래프 나타낼 영역을 따로 잡았습니다.
하기 간략한 소스 첨부하였습니다. ( public class ImageView extends View 여기에 서 그려주도록)
canvas 를 이용해서 drawRect 로 막대 그래프를 직접 그렸고, 이미지를 drawBitmap 으로 그렸습니다.
[간략 소스첨부]
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG,"onCreate()");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout graphLayout = (LinearLayout)findViewById(R.id.graphLayout);
graphLayout.addView(new ImageView(this)); // 이런식으로 addView 해준 후,
}
public class ImageView extends View {
public ImageView(Context context) {
img = BitmapFactory.decodeResource(res, R.drawable.img);
}
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(img, 20, 100, null);
}
위 소스와 같이 그려주었는데,
질문은
이렇게 Canvas 로 그려준 이미지(img)에
onClickListener 를 달 수있는지 입니다. (이미지를 클릭했을 때, 다른 Activity 로 전환하기 위함.)
가능한지, 아니면 이미지의 위치값을 구해서 그 영역만큼 클릭 이벤트를 따로 줘야 하는건지...
아시는 분 답변부탁드립니다.^^
그럼 즐거운 개발하세요^^ 꼭 아시는분 답변 주시면 감사하겠습니다.




OnClickLinstener에는 View 클릭 여부만 넘어오기 때문에 정의하신 ImageView의 OnTouchEvent 를 통해 넘어온 xy 좌표를 체크해서 그려준 이미지 영역내에서 클릭이 일어난 건지 수작업으로 체크 해 주어야 할 듯 합니다.