0
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// CODE FOR PUTTING BITMAP ON BACKGROUND
String pathName = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()
+ "/Backgrounds/0.png";
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeFile(pathName);
BitmapDrawable bd = new BitmapDrawable(res, bitmap);
View view = findViewById(R.id.screen1);
view.setBackgroundDrawable(bd);
}
はビットマップが唯一310Kである
次のコードとすべての私の活動の(10)
上の同じビットマップを使用している場合にのみoccasionallメモリ不足エラーを取得イム
1つのアクティビティから別のアクティビティに素早く連続して切り替えるときに発生する傾向があります。
どのようにすればより効率的にすることができますか?
すべてのヘルプは
マーク
'ビットマップは310kです。あなたは 'PNGファイルは310KBだけです'という意味ですか?ビットマップはより多くのメモリを占有します。 – greenapps
310kbはあなたのPNG画像の*圧縮*サイズです。メモリにロードされたときに**メモリ**サイズと呼ばれ、それは異なる場合があります(一般的にはそれ以上)。 OOMの原因は、ビットマップの**メモリサイズです**。割り当てようとしているメモリの量を確認する必要があります。 提案:アンドロイドの画像読み込みライブラリを使用してください。 –
"System.gc();"を追加できます。メモリをクリアするためにアンドロイドガベージコレクタを強制するコマンド。 – acac97