2013-04-12 12 views
6
私はその大きさほぼすべてのフレームを高めるために、私のPNGファイルのいずれかが必要なので

アンドロイド:

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

の使用にキャンバス上にビットマップを描画学ぼうと

イムをビットマップを描画するために行列を使用して、私はそれを行うために管理しました

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の行列バージョンでもそうすることができますか?どのようにイメージをサイズ変更する必要がありますか?

答えて

10

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

+0

Thx、これは機能しました – Anderiel