1

画像(背景画像として使用されますが、実際には問題ではありません)を、左から右に循環的に移動するようにアニメーション化しようとしています。たとえば、画像サイズがビューサイズとまったく同じである場合、ピクセルの右端の列が右端を超えると、ビューの左端に表示されます。

私はそれを行うためのいくつかの方法を考えましたが、それらのすべては私には複雑すぎるように聞こえます、そしてそれを行うためのより「コア」な方法があると確信しています。

ありがとう、リオール。

4

2 に答える 2

2

Bitmapとがピクセル単位でまったく同じサイズの場合はImageView、ピクセルを手動で自由に移動できます。

int pixels[];
bitmap.getPixels(pixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
shiftPixels(pixels, width, height);
bitmap.setPixels(pixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.setWidth());

単純にshiftPixels元のビットマップのコピーを作成しますが、ピクセルをコピーするときは、ピクセルに線形シフトを適用します。このようなもの(テストされていない擬似コード);

void shiftPixels(int inPixels[], int bitmapHeight, int nPixHorizShift)
{

    int shift = bitmapHeight * nPixHorizShift;
    int outPixels[inPixels.size()];

    for i = 1:pixels.size()
       outPixels[(i + shift) % outPixels.size()] = inPixels[i];

    inPixels = outPixels;
}
于 2012-05-17T19:18:39.530 に答える
0

canvas.drawBitmap(sourceRectangle,outputRectangle,null)ストリップビットマップの背景からパーツを切り取るために使用できますか?これは、ビットマップをアニメーション化するために使用されるのと同様の方法ですが、背景ストリップの端に当たるまで、sourceRectangleの左右の値に1ピクセルを追加します。

于 2012-05-25T00:02:17.427 に答える