public class AnimateView extends SurfaceView implements SurfaceHolder.Callback {
private ImageThread thread;
<생략>
class ImageThread extends Thread {
private Bitmap mImgBack0;
<생략>
private SurfaceHolder mSurfaceHolder;
public ImageThread(SurfaceHolder surfaceHolder, Context context, Handler handler) {
mSurfaceHolder = surfaceHolder;
Resources res = context.getResources();
mImgBack0 = BitmapFactory.decodeResource(res, R.drawable.img31);
<생략>}
public void run() {
while (true) {
Canvas c = null;
try {
c = mSurfaceHolder.lockCanvas(null);
synchronized (mSurfaceHolder) {
doDraw(c);
mVisitCount++;
sleep(120);
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (c != null) {
mSurfaceHolder.unlockCanvasAndPost(c);
}
}
}
}
private void doDraw(Canvas canvas) {
<생략>
Rect srect1 = new Rect(5,135,35,175); //왼쪽방향
Rect srect2 = new Rect(35,135,60,175);
Rect srect3 = new Rect(60,135,95,175);
Rect srect4 = new Rect(95,135,125,175);
<생략>
private void drawArrow(Canvas canvas) {
<생략>
}
}
public AnimateView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
SurfaceHolder holder = getHolder();
holder.addCallback(this);
// create thread only; it's started in surfaceCreated()
thread = new ImageThread(holder, context, new Handler() {
@Override
public void handleMessage(Message m) {
mStatusText.setVisibility(m.getData().getInt("viz"));
mStatusText.setText(m.getData().getString("text"));
}
});
setFocusable(true); // make sure we get key events
}
<생략>
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
mx = (int) event.getX();
my = (int) event.getY();
int nDirection = getArrowItemRect(mx, my);
if (nDirection == 1) { //left
myx = myx - 50;
arrow = 1;
//Toast.makeText(mContext, "left", Toast.LENGTH_SHORT).show();
}
<생략>
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_MOVE:
break;
}
return false;
// return super.onTouchEvent(event);
}
}
화살표 그림이 있는 이미지를 터치하면 캐릭터가 그에 맞게 움직이고 그림도 바뀌는데
꾹 누르면(롱터치) 캐릭터가 끝까지 이동하게 하고 싶은데 모르겠습니다 도와주세요