私は簡単な質問があります: ImageViewに追加するか、ImageViewでビットマップのサイズを変更する前に、より大きなビットマップのサイズを変更する必要がありますか? パフォーマンスに関する正しい方法は何ですか?ImageViewに追加する前にビットマップのサイズを変更するか、ImageViewでビットマップのサイズを変更する必要がありますか?
おかげ
私は簡単な質問があります: ImageViewに追加するか、ImageViewでビットマップのサイズを変更する前に、より大きなビットマップのサイズを変更する必要がありますか? パフォーマンスに関する正しい方法は何ですか?ImageViewに追加する前にビットマップのサイズを変更するか、ImageViewでビットマップのサイズを変更する必要がありますか?
おかげ
はImageViewのためのスケールを使用することを検討して、サイズ変更については気にしないでください。
image.setAdjustViewBounds(true);
image.setMaxHeight(50);
image.setMaxWidth(50);
image.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
大きな画像、大きいサイズは、私はパフォーマンスが本当に影響を受けるだろうと思いますが、効率的なものを維持しません。
また、異なる解像度のための異なるフォルダに異なるサイズの画像を置くことができます:
res/drawable-mdpi/my_icon.png // bitmap for medium density
res/drawable-hdpi/my_icon.png // bitmap for high density
res/drawable-xhdpi/my_icon.png // bitmap for extra high density
bitmap.createScaledBitmapを使用して既存のビットマップのサイズを変更することができます。以下のコードを使用してください。
bmp=Bitmap.createScaledBitmap(bmp,destBitmapWith, destBitmapHeight,true);
私がBitmapFactoryとして探していたのは、不変のビットマップを返します。 –
あなたは次のように行うことができます。
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setAdjustViewBounds(true);
imageView.setMaxHeight(imageView.getHeight());
imageView.setMaxWidth(imageView.getWidth());
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
あなたが固定ピクセルサイズ(すなわち,. PX)、または密度/規模の独立した(すなわち、DP/SP)のサイズにスケーリングされていますか? –
ディップスに。ビットマップがImageViewsの高さ/幅(約10%)よりわずかに大きいということを忘れてしまいました。 – Benjamin
少し大きければ 'setScaleType'を使ってください。大きさが大きければ、ロード中およびロード後に縮小することをお勧めします。 – Dave