私はクイズアプリケーションに取り組んでいます。その中で、質問とオプションをリストに表示しています。次へのボタンを一番上に置いておき、次へのボタンをクリックすると、テストが終了するまで同じページを何度も呼び出します。一部の質問は画像で構成されているため、質問の下にボタンを表示しています。ボタンをクリックすると、新しいページに画像が表示されます。
今私の問題は、ボタンをクリックして例外を表示している画像を表示するときです。outofmemory
image.java
public class image extends Activity {
ImageView myimgview;
ImageView buttondismiss;
public static String image_url;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image);
Intent intent = getIntent();
image_url = intent.getStringExtra(List.IMAGE_NAME);
buttondismiss = (ImageView) findViewById(R.id.dismiss1);
myimgview = (ImageView) findViewById(R.id.imageView100);
int in = image_url.indexOf(".");
String index = Integer.toString(in);
String picturename = image_url.substring(0, in);
int imageResource = getResources().getIdentifier(picturename,"drawable", "com.quiz.test"); // getPackageName());
myimgview = (ImageView) findViewById(R.id.imageView100);
myimgview.setImageResource(imageResource);
}
}
ログキャット:
08-18 11:11:01.063: E/AndroidRuntime(552): FATAL EXCEPTION: main
08-18 11:11:01.063: E/AndroidRuntime(552): java.lang.OutOfMemoryError
08-18 11:11:01.063: E/AndroidRuntime(552): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:483)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:351)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:773)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.content.res.Resources.loadDrawable(Resources.java:1937)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.content.res.Resources.getDrawable(Resources.java:664)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.widget.ImageView.resolveUri(ImageView.java:542)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.widget.ImageView.setImageResource(ImageView.java:315)
08-18 11:11:01.063: E/AndroidRuntime(552): at com.quiz.test.image.onCreate(image.java:48)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.app.Activity.performCreate(Activity.java:4465)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.app.ActivityThread.access$600(ActivityThread.java:122)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.os.Handler.dispatchMessage(Handler.java:99)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.os.Looper.loop(Looper.java:137)
08-18 11:11:01.063: E/AndroidRuntime(552): at android.app.ActivityThread.main(ActivityThread.java:4340)
08-18 11:11:01.063: E/AndroidRuntime(552): at java.lang.reflect.Method.invokeNative(Native Method)
08-18 11:11:01.063: E/AndroidRuntime(552): at java.lang.reflect.Method.invoke(Method.java:511)
08-18 11:11:01.063: E/AndroidRuntime(552): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
08-18 11:11:01.063: E/AndroidRuntime(552): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
08-18 11:11:01.063: E/AndroidRuntime(552): at dalvik.system.NativeStart.main(Native Method)
エラーは行 myimgview.setImageResource(imageResource); に表示されています。何が問題なのかわかりませんでした。プロジェクトでこれらすべての画像が必要なため、ドローアブル フォルダーに最大 400 個の画像を保持しました。誰でもこの問題で私を助けてください。私はこの問題に苦労しています。どんな助けでも大歓迎です。