3
私はBitmap
を持っています。私はそれを私のウィンドウのタイル張りの背景として使用しようとしています。問題はスケールが間違っていることです。私はビットマップを画面上に2倍の大きさに描画したい。私はBitmap.setDensity
とBitmapDrawable.setTargetDensity
の両方を使用しようとしましたが、どちらも効果がありません。ビットマップを描画するときにsetDensity/setTargetDensityが無視される
マイコード:
Bitmap bitmap = fromSomewhere();
int original_density = bitmap.getDensity(); // this returns 240
// bitmap.setDensity(..); // has no effect, tried with 120,160,480
BitmapDrawable drawable = new BitmapDrawable(bitmap);
// drawable.setTargetDensity(..); // has no effect, tried with 120,160,480
drawable.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT);
getWindow().setBackgroundDrawable(drawable);
注:
- 私のターゲットSDKは8ですが、私はまた、具体的
<supports-screens android:anyDensity="true"/>
- マニフェスト で
- 私のテストデバイスはSamsung Galaxy 2(高密度)ですが、中程度の密度のエミュレータでもテストしましたが、影響は見られませんでした。
- 私は、は、GetWindowの特に1を他の密度を変更していない()
Bitmap
オブジェクトが指定されている設定を試してみた、私が持っていますそれがどのように生成されるかを制御することはできません。私はそれを操作することしかできません。
は密度がX2のスケーリングを達成するための最も簡単な方法はありませんか?どうしてうまくいかないのですか?\
私はまだ解決策を知らないが、私は同じ問題を抱えていると私はあなたがタイルモードを設定すると濃度設定が無視されることに気づきました。 –
タイルモードが設定されているときに濃度が無視されることに同意します。また、TileModeが設定されている場合、ImageViewのStretchMode.FIT_XYは無視されます。 – Moritz