올해는 머신러닝이다.
[팁]android bitmap을 불러와서 drag하는 예제 본문
출처 : http://sdw8001.tistory.com/5
리소스에서 bitmap을 읽어오고 화면에 출력한 후 touch를 이용해서 drag하는 예제
package com.jjihun.bitmaptest;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
public class BitmapView extends View {
Bitmap bitmap;
int width;
int height;
int dx;
int dy;
public BitmapView(Context context, AttributeSet attrs) {
super(context, attrs);
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.yuandi);
// 얘 뒤져보면 byte[] 에서 bitmap생성하는 것도 있심
width = bitmap.getWidth();
height = bitmap.getHeight();
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(
bitmap, // 출력할 bitmap
new Rect(0,0,width,height), // 출력할 bitmap의 지정된 영역을 (sub bitmap)
new Rect(dx,dy,dx+width,dy+height), // 이 영역에 출력한다. (화면을 벗어나면 clipping됨)
null);
super.onDraw(canvas);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_MOVE:
// 주루룩 drag했을 경우 히스토리가 모두 기록되어서 전달됨
int length=event.getHistorySize();
float sx, sy, ex, ey;
if (length != 0) {
sx = event.getHistoricalX(0);
sy = event.getHistoricalY(0);
ex = event.getHistoricalX(length-1);
ey = event.getHistoricalY(length-1);
dx += (int)(ex-sx);
dy += (int)(ey-sy);
}
invalidate();
break;
}
return true;
}
}
'Android > Tip&Tech' 카테고리의 다른 글
[팁]Custom ImageView with drop shadow (0) | 2011.06.01 |
---|---|
[팁]email에 파일첨부하기 (1) | 2011.05.31 |
[펌]c2dm 관련 팁 (0) | 2011.05.30 |
Working with XML on Android (0) | 2011.05.28 |
[android] Button의 color변경 (pressed, focus, default) 과 그라데이션 주기. (1) | 2011.05.27 |