मैं गैलेक्सी एस 4 के लिए एक एप्लीकेशन विकसित कर रहा हूं। एप्लिकेशन की आवश्यकताओं में से एक में स्प्लैशस्क्रीन है जिसमें 1920x1080 पिक्सेल की छवि शामिल है। इसकी एक उच्च गुणवत्ता .jpeg छवि और छवि का आकार लगभग 2 मेगाबाइट है।उच्च रिज़ॉल्यूशन छवि - OutOfMemoryError
समस्या यह है कि मुझे आउटऑफमेमरी एरर जैसे ही मैं एप्लिकेशन शुरू करता हूं। मैं काफी डर गया हूं कि यह आकार में केवल 2 मेगाबाइट की छवि के साथ पहले से ही होता है? मैं इस समस्या को कैसे ठीक कर सकता हूं और छवि प्रदर्शित कर सकता हूं?
आयाम या छवि का आकार बदलना एक विकल्प नहीं है।
SplashScreen.java
public class Splashscreen extends Activity {
private static final int SPLASH_DURATION = 2000;
private boolean isBackPressed = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.splashscreen);
Handler h = new Handler();
h.postDelayed(new Runnable() {
@Override
public void run() {
// check if the backbutton has been pressed within the splash_duration
if(!isBackPressed) {
Intent i = new Intent(Splashscreen.this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Splashscreen.this.startActivity(i);
overridePendingTransition(R.anim.short_fade_in, R.anim.short_fade_out);
}
finish();
}
}, SPLASH_DURATION);
}
@Override
public void onBackPressed() {
isBackPressed = true;
super.onBackPressed();
}
}
और splashscreen.xml
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ivSplashScreenImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/high_res_splashscreen_image"/>
अतिरिक्त जानकारी:
कभी कभी, (जब डिवाइस स्मृति का एक बहुत उपलब्ध है) ऐप इसे स्प्लैश स्क्रीन से पहले बनाने में सक्षम है, लेकिन फिर, ऐप की मेमोरी खपत सिर्फ पागल है। (लगभग 100 मेगाबाइट)। भले ही मैं स्प्लैशस्क्रीन गतिविधि बंद करता हूं और इसे समाप्त करता हूं (ऐसा लगता है कि छवि दृश्य/स्मृति में रखी गई छवि का संदर्भ है।
मैं बड़ी मेमोरी खपत को कैसे कम कर सकता हूं?
जब मैं स्प्लैश स्क्रीन प्रदर्शित नहीं करते, मेरा ऐप्स केवल स्मृति के 35MB आसपास खपत करता है। स्प्लैशस्क्रीन छवि के साथ, इसके लगभग 100 एमबी।
[इसे देखें] (http://stackoverflow.com/questions/477572/strange-out-of-memory-issue-while-loading-an-image-to-a-bitmap-object) –
क्या आपके पास है आपके res फ़ोल्डर में बहुत सारी छवि फ़ाइलें ?? –
हां, मेरे पास लगभग 40 छवि फ़ाइलें हैं। लेकिन वे आकार में 10 और 50 केबी के बीच होने वाले बहुत बड़े नहीं हैं (केवल उनमें से अधिकांश प्रतीक)। –