Iは、以下の場合にonTouchEvent()
方法を使用しています:ドラッグ方法が遅れているのはなぜですか?
case MotionEvent.ACTION_MOVE:
if (motionEvent.getHistorySize() > 0) {
for (int i = 1, n = motionEvent.getHistorySize(); i < n; i++) {
int calcX = (int) motionEvent.getHistoricalX(i) - (int) motionEvent.getHistoricalX(i - 1);
treesX += calcX;
}
}
break;
treesX
変数は、背景がビットマップとして描画される点を表し、そして他の背景が画面幅とその隣描かに添加されますtreesX
、および画面の幅は、次のコードに示すように、両方の画像は、シームレスな背景の効果を与えるために1つの画面幅バックジャンプスクロールされた後:
public void draw() {
if (ourHolder.getSurface().isValid()) {
canvas = ourHolder.lockCanvas();
if ((int) treesX < -screenWidth) {
treesX += screenWidth;
}
if ((int) treesX > 0) {
treesX -= screenWidth;
}
canvas.drawBitmap(trees, null, new Rect((int) treesX, 0, screenWidth + (int) treesX, screenHeight), paint);
canvas.drawBitmap(trees, null, new Rect((int) treesX + screenWidth, 0, 2 * screenWidth + (int) treesX, screenHeight), paint);
}
ourHolder.unlockCanvasAndPost(canvas);
}
これは、2つの背景は、常に次の権利でなければならないことを意味しお互いに、 しかし、私は画面をスクロールすると、少し離れたり重なり合ったりしますが、これを修正できる方法はありますか?それらを同期させないコードの部分はどれですか?