2

タップすると、もう一度タップするとスクロール画像の方向が左右に変わるスクロール背景が必要です。画面をタップまたはタッチしたときに画像の位置を継続したい。私のコードが行うことは、タップするたびに、スクロールする背景の位置が、画面をタップしたときの位置から始まらないことです。助けてください、事前に感謝します

@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);

fromRect1 = new Rect(0, 0, bgrW - bgrScroll, bgrH);
toRect1 = new Rect(bgrScroll, 0, bgrW, bgrH);

fromRect2 = new Rect(bgrW - bgrScroll, 0, bgrW, bgrH);
toRect2 = new Rect(0, 0, bgrScroll, bgrH);

if(left == true){

if (!reverseBackroundFirst) {
    canvas.drawBitmap(bgr, toRect1, fromRect1, null);
    canvas.drawBitmap(bgrReverse, toRect2, fromRect2, null);
}
else{
    canvas.drawBitmap(bgr, toRect2, fromRect2, null);
    canvas.drawBitmap(bgrReverse, toRect1, fromRect1, null);
}


}else{

    if (!reverseBackroundFirst) {
        canvas.drawBitmap(bgr, fromRect1, toRect1, null);
        canvas.drawBitmap(bgrReverse, fromRect2, toRect2, null);
    }
    else{
        canvas.drawBitmap(bgr, fromRect2, toRect2, null);
        canvas.drawBitmap(bgrReverse, fromRect1, toRect1, null);
    }


}
if ( (bgrScroll += dBgrY) >= bgrW) {
    bgrScroll = 0;
    reverseBackroundFirst = !reverseBackroundFirst;
}

}

//***************************************
//*************  TOUCH  *****************
//***************************************
@Override
public synchronized boolean onTouchEvent(MotionEvent ev) {

switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN: {
left = !left;
invalidate();
break;
}

case MotionEvent.ACTION_MOVE: {


break;
}

case MotionEvent.ACTION_UP:

break;
}
return true;
}
4

1 に答える 1

1

方向を切り替えた後、bgrScroll を更新する必要があります。次のようにします。

    case MotionEvent.ACTION_DOWN: {
        left = !left;
        bgrScroll = bgrW - bgrScroll;
        invalidate();
        break;
    }
于 2013-09-14T16:58:11.897 に答える