2
ImageViewで簡単なアプリケーションを開発しています.ImageViewをクリックすると、アプリケーションが画像ギャラリーを開く必要があります。これを達成するために私が選択した画像がImageViewの中に表示されている。次のコードにSDカードから画像を読み取るときにメモリ不足になる
Intent imageIntent=new Intent(Intent.ACTION_PICK);
imageIntent.setType("image/*");
startActivityForResult(imageIntent,5);
そしてActivityResult
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 5)
{
Cursor cursor;
Uri uri=data.getData();
if(uri!=null)
{
cursor=getContentResolver().query(uri, new String[]{ android.provider.MediaStore.Images.ImageColumns.DATA },
null, null, null);
cursor.moveToFirst();
String imageID=cursor.getString(0);
personImage.setImageURI(uri);
Log.i("ImageId", ""+imageID);
cursor.close();
}
}
を使用しています今、問題は私が次の例外を取得している2回目をしているときです。
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): FATAL EXCEPTION: main
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:468)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:332)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.graphics.drawable.Drawable.createFromStream(Drawable.java:657)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.widget.ImageView.resolveUri(ImageView.java:572)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.widget.ImageView.setImageURI(ImageView.java:293)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at com.css.testsample.ReadImage.onActivityResult(ReadImage.java:36)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.app.Activity.dispatchActivityResult(Activity.java:3931)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.app.ActivityThread.deliverResults(ActivityThread.java:3730)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3776)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.app.ActivityThread.access$2800(ActivityThread.java:135)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2166)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.os.Handler.dispatchMessage(Handler.java:99)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.os.Looper.loop(Looper.java:144)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at android.app.ActivityThread.main(ActivityThread.java:4937)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at java.lang.reflect.Method.invokeNative(Native Method)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at java.lang.reflect.Method.invoke(Method.java:521)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-01 19:31:52.344: ERROR/AndroidRuntime(2011): at dalvik.system.NativeStart.main(Native Method)
この問題の処理方法はわかりません。誰か助けてください。
おかげで、よろしく、 Rajapandian.K
感謝を示すようにあなたのイメージをダウンサンプリングしてみます。 – Rajapandian