2011-10-20 2 views

答えて

13

この試してください(この場合ビューの全領域である)DESTによって指定された画面領域に

... 
Rect dest = new Rect(0, 0, getWidth(), getHeight()); 
Paint paint = new Paint(); 
paint.setFilterBitmap(true); 
canvas.drawBitmap(background, null, dest, paint); 

これは、ビットマップの一部をレンダリングする(「NULL」は、全体のビットマップを意味します) 。

これは、アスペクト比を変更する可能性があることに注意してください。背景によっては、修正する必要があるかもしれません。

+1

これは画像の品質を変えます。イメージをxmlからバックグラウンドとして設定した場合、okと表示されますが、このようにはっきりしません。 – Gabrielle

+0

品質を修正するには、Paintオブジェクトを作成してsetFilterBitmap(true)を呼び出します。これにより、デフォルトの「最近隣」サンプリングが「線形」に置き換えられます。 –

+0

これは画像がまだ大きなキャンバスの一部分のみを埋めるようにしました。 – teapeng

関連する問題