私のアプリケーションには、3x3グリッド上に9つのビットマップイメージがあります。すべてが画面に表示されており、ユーザーがどのように対話しているか(タップ、ダブルタップ、ピンチ、ズーム、ドラッグ)に応じて、「アクションオン」になっている画像はさまざまなタスクを実行する必要があります。Androidビットマップイメージの拡大/縮小
たとえば、1つの画像をタップすると、その画像を垂直方向にまっすぐ回転させて停止する必要があります。
現在、私はonTouchEvent(..)メソッドでSurfaceViewを使用しています。私がアニメーション化できると思ったのは、画像の幅を1から-1に戻してスケーリングすることです。私は行列を使用しようとしていましたが、イメージをその中心に置くことができません。これを修正したり、これを代替/より良い方法で提案してください。
私の現在のコードは単なるテストに過ぎません。 bがtrueの場合、メソッドはビットマップの縮尺を試みます。 Bは、それが
public void doDraw(Canvas canvas, boolean b)
{
Matrix m = new Matrix();
float scale = .5f;
m.setScale(scale, 1f);
m.postTranslate(mX,mY);
if(!b)
canvas.drawBitmap(mBitmap, mX, mY, null);
else
canvas.drawBitmap(mBitmap, m, null);
}
私はあなたが次のようになっていると仮定しています: 'float scale = -1f; \t m.preTranslate(-mX、-mY); \t m.setScale(scale、1f); \t m.postTranslate(mX、mY); ' しかし、これはうまくいかなかった。私はまた、注文のスケールを試して、pretranslate、posttranslate。 Nothing – Sababado
イメージは左端に沿って並んでいます。私はそれを中心にする必要があります。 – Sababado
投稿更新 – weakwire