3

drawBitmap と setBackgroundDrawable の組み合わせを使用すると、画像が実際よりも 2 倍小さく表示されるという奇妙な問題があります。

以下は、新しいビットマップとキャンバスを作成する私のコードです。次に、キャンバスにビットマップを描画し、新しいビットマップを既存のレイアウトの背景として配置します。後でキャンバスを操作するので、このメソッドを使用する必要があります。

Bitmap left = BitmapFactory.decodeResource(getResources(), resID);      
// Create a temporary bitmap
Bitmap tempBitmap = Bitmap.createBitmap(
        left.getWidth(),
        left.getHeight(),
        Bitmap.Config.ARGB_8888);           
Canvas tempCanvas = new Canvas(tempBitmap);         
//Draw bitmap on canvas
tempCanvas.drawBitmap(left, 0, 0, null);
background.setBackgroundDrawable(tempBitmap);

使用してみtempCanvas.scale(2, 2);ましたが、これは「ピクセル」を通常のサイズにスケーリングしますが、長方形はスケーリングしません。

背景画像を使用background.setBackgroundResource(resID);すると、正しいサイズで表示され、MDPI/HDPI/XHDPI フォルダーの問題が除外されます。

で設定すると背景画像が縮小表示されるのはなぜsetBackgroundDrawable()ですか?

4

2 に答える 2