2013-10-28 2 views
0

Я изображение, сохраненный в вытяжке папки, где ее размер 1 Мб и разрешение 992x9000 моего кода:нагрузка изображение эффективно большое из вытяжки с помощью URI

ImageView jpgView = (ImageView) findViewById(R.id.surahShow); 
Uri path = Uri.parse("android.resource://com.android.ta/" + R.drawable.myimage); 
jpgView.setImageURI(path); 

приложения, работающие и заставить близко

Вот мой LogCat :

10-28 10:55:07.321: E/AndroidRuntime(596): FATAL EXCEPTION: main 
10-28 10:55:07.321: E/AndroidRuntime(596): java.lang.OutOfMemoryError: bitmap size exceeds VM budget 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:450) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:326) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:349) 
10-28 10:55:07.321: E/AndroidRuntime(596): at com.android.juzamma.SingleListSurah.decodeSampleBitmapFromResource(SingleListSurah.java:290) 
10-28 10:55:07.321: E/AndroidRuntime(596): at com.android.juzamma.SingleListSurah.onCreate(SingleListSurah.java:199) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.os.Handler.dispatchMessage(Handler.java:99) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.os.Looper.loop(Looper.java:123) 
10-28 10:55:07.321: E/AndroidRuntime(596): at android.app.ActivityThread.main(ActivityThread.java:3647) 
10-28 10:55:07.321: E/AndroidRuntime(596): at java.lang.reflect.Method.invokeNative(Native Method) 
10-28 10:55:07.321: E/AndroidRuntime(596): at java.lang.reflect.Method.invoke(Method.java:507) 
10-28 10:55:07.321: E/AndroidRuntime(596): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
10-28 10:55:07.321: E/AndroidRuntime(596): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
10-28 10:55:07.321: E/AndroidRuntime(596): at dalvik.system.NativeStart.main(Native Method) 

тогда я попытался изменить мой код:

public static int calculateInSampleSize(
      BitmapFactory.Options options, int reqWidth, int reqHeight){ 

     final int height = options.outHeight; 
     final int width = options.outWidth; 
     int inSampleSize = 2; 

     if (height/2 < reqHeight || width/2 < reqWidth) { 
      final int heightRatio = Math.round((float) height/(float) reqHeight); 
      final int widthRatio = Math.round((float) width/(float) reqWidth); 
inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio; 
      } 
     return inSampleSize; 
    } 

    public static Bitmap decodeSampleBitmapFromResource(Resources res, int resId, 
      int reqWidth, int reqHeight) { 

     final BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inJustDecodeBounds = true; 
     BitmapFactory.decodeResource(res, resId, options); 
     options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); 
     options.inJustDecodeBounds = false; 
     return BitmapFactory.decodeResource(res, resId, options); 
     } 
jpgView.setImageBitmap(decodeSampleBitmapFromResource(getResources(), R.drawable.myimage, 100, 100)); 

, но по-прежнему заставляют близко

я получить решение Strange out of memory issue while loading an image to a Bitmap object и here

но вещь, я не смог настроить свой код с кодом, который я использую

я сделать это на андроид 2.3.1

Может кто-то помочь

ответ

1

ваш ответ UNIVERSAL IMAGE LOADER .... получайте удовольствие :) :)

+0

или использовать AQuery! это отличная библиотека для манипулирования пользовательским интерфейсом! –

+0

Jlazar89: спасибо за вашу помощь Я попытался импортировать проект в свое затмение, но почему бы не придумать? – noel

+0

Niraj Adhikari: Я не знаком с базой данных, а также приложение не использует базы данных – noel

Смежные вопросы