6

を使用してキャンバス上にビットマップを描画することを学ぼうとしています

drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint);

ほぼすべてのフレームでサイズを大きくするにはpngの1つが必要なので、どうにかしてそれを行うことができました

Matrix matrix=new Matrix();
matrix.setScale(0.001f,0.001f);

これは私にとってはうまくいきます。しかし、私が抱えている問題は、画像を正しい座標に配置することです。どっちでもいいと思ってた

matrix.setTranslate(x,y); matrix.postTranslate(x,y);

しかし、それは間違っているところです。画像は常に 0,0 座標に描画されます。画像のスケーリングが必要になる前は、使用しても問題ありませんでした

canvas.drawBitmap(bmp,x,y,paint);

描画するポイントを指定できます。drawBitmapのマトリックスバージョンでもできますか? または、他にどのように画像のサイズを頻繁に変更する必要がありますか?

4

1 に答える 1

10

描画ビットマップのマトリックス バージョンを使用します。重要なことは、正しい順序で行うことです。恒等行列から始めます。次に、postScale を使用して任意の倍率でスケーリングします。それはそれを成長させますが、起源を変えることはありません。次に、postTranslate を使用して翻訳します。これにより、左/右/上/下に移動します。次に、ビットマップをキャンバスに描画し、マトリックスに渡します。コピーする前に、マトリックスによってビットマップをスケーリングおよび移動します。

于 2013-04-12T18:53:03.407 に答える