Android のスケーリングがどのように機能するのか理解できません。マトリックスを使用し、サイズ 540 x 960 のビットマップを postScaled しました。1.067 と 1.023 でスケーリングすると、682 x 368 になります。
540 * 1.067 = 576 not 368
960 * 1.023 = 981 not 682
スケーリングのロジックを理解できません。また、スケーリングする値も、そこに入れた 1.067 と 1.023 ではなく 0.67 から 0.7 に変化します。
誰かがこれがどのように機能するかを知っていて、私を助けてくれますか?
編集:スケーリングを行うコードは次のとおりです。
public Bitmap resizeBitmap(Bitmap b){
int width = b.getWidth();
int height = b.getHeight();
Matrix max = new Matrix();
max.postScale(Vars.screenWidthMulti, Vars.screenHeightMulti);
Bitmap resizedBitmap = Bitmap.createBitmap(b, 0, 0, width, height, max, false);
return resizedBitmap;
}
私は Bitmap.createScaledBitmap について知りませんが、それが同じ結果をもたらすのに役立つ場合は、ここのようにスケーリングされたマトリックスだと思います:/
EDIT2: 両方の軸で 1.5f でスケーリングすると、ビットマップが元のサイズになることがわかりました。長さを分割することによって得られるスケーリング係数は、マトリックスが使用するスケーリングと一致しないように見えるため、「変換」する方法がわかりません。適切に機能するようにします。