実行時に、画像をサーフェス ビューに配置しようとしています。Drawable フォルダの画像を使用しようとすると、メモリ不足エラーが発生しました。stackoverflow で簡単に検索したところ、アセット フォルダーから画像にアクセスすると、いくらか安心できることがわかりました。それでも、実行時にメモリ不足エラーが発生します。
私が分析したところ、スケーリングがこの種のメモリ関連の問題の解決に役立つことがわかりました。問題は、画像サイズが 1280 x 720 で、デバイス サイズも同じであることです。したがって、スケーリングの効果はないように感じます。
このコミュニティには専門家がいるため、この種の問題を解決するための提案や例をいくつか教えていただければ幸いです。
シナリオ 1:
Drawable フォルダーの Bitmap を使用します。
backgoundImage = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.backgroundhomepage), (int) dWidth, (int) dHeight, true);
/***********************************************************************************************************************************************************
1. To get the image from asset library
**************************************************************************************************************************************************************/
public Bitmap getAssetImage(Context context, String filename) throws IOException {
AssetManager assets = context.getResources().getAssets();
InputStream buffer = new BufferedInputStream((assets.open("drawable/" + filename + ".png")));
Bitmap bitmap = BitmapFactory.decodeStream(buffer);
return bitmap;
}
シナリオ 2:
Assets フォルダーからのビットマップの使用
backgoundImage = Bitmap.createScaledBitmap(getAssetImage(context,"backgroundhomepage"), (int) dWidth, (int) dHeight, true);