안드로이드 개발 질문/답변
(글 수 45,052)
비트맵 파일을 canvas.drawBitmap(bm, 20, 20, null); 요런식으로 해서 출력하고 있는데요
비트맵이미지를 시간에따라서 움직이는 방법을 잘 모르겠습니다..
예를 들면 위에서 아래로 이동하거나 이런것이요
도움좀 주세요 너무 어렵네요 ;;;
2010.04.22 18:40:32
간단한 움직임은 에니메이션이 좋지 않을 까요..
canvas.drawBitmap(bitmap, left, top, paint); handler.sendEmptyMessage(0);
handler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (left >= MAX) {
canvas.drawBitmap(bitmap, left, top, paint);
} else {
left++;
mProgressDialog.incrementProgressBy(1);
handler.sendEmptyMessageDelayed(0, 100);
}
}
};
이러면 될까요 -___-;; ..??
2010.04.22 19:13:17
@Override
public void onDraw(final Canvas canvas) {
Handler handler;
ProgressDialog mProgressDialog;
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.androidmarker2);
Bitmap bm_2 = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
final Bitmap bm_3 = BitmapFactory.decodeResource(getResources(), R.drawable.androidmarker);
bm.setDensity(10);
canvas.drawColor(Color.parseColor("#dedede"));
canvas.drawBitmap(bm, 20, 20, null);
canvas.drawBitmap(bm_3, 100, variable_y, null);
canvas.drawBitmap(bm_2, x-(bm_2.getWidth()/2), y-(bm_2.getHeight()/2), null);
handler.sendEmptyMessage(0);
handler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (variable_y >= 500) {
canvas.drawBitmap(bm_3, 100, variable_y, null);
} else {
variable_y++;
mProgressDialog.incrementProgressBy(1);
handler.sendEmptyMessageDelayed(0, 100);
}
}
};
}
요렇게 했는데 밑줄친 부분에 Cannot refer to a non-final variable mProgressDialog inside an inner class defined in a different method 라고 에러가 뜹니다 도움좀 주세요 부탁드려요
public void onDraw(final Canvas canvas) {
Handler handler;
ProgressDialog mProgressDialog;
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.androidmarker2);
Bitmap bm_2 = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
final Bitmap bm_3 = BitmapFactory.decodeResource(getResources(), R.drawable.androidmarker);
bm.setDensity(10);
canvas.drawColor(Color.parseColor("#dedede"));
canvas.drawBitmap(bm, 20, 20, null);
canvas.drawBitmap(bm_3, 100, variable_y, null);
canvas.drawBitmap(bm_2, x-(bm_2.getWidth()/2), y-(bm_2.getHeight()/2), null);
handler.sendEmptyMessage(0);
handler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (variable_y >= 500) {
canvas.drawBitmap(bm_3, 100, variable_y, null);
} else {
variable_y++;
mProgressDialog.incrementProgressBy(1);
handler.sendEmptyMessageDelayed(0, 100);
}
}
};
}
요렇게 했는데 밑줄친 부분에 Cannot refer to a non-final variable mProgressDialog inside an inner class defined in a different method 라고 에러가 뜹니다 도움좀 주세요 부탁드려요