2014-10-06 4 views
0

Я хочу загрузить файл изображения 15 Мб в изображение. Я попытался загрузить его с помощью piccasa и другими способами, но все возвращают исключение из памяти.Загрузить изображение высокого качества в imageview

Код я использовал

 Picasso.with(getActivity()).load(R.drawable.highqual).into(imageView); 

Есть ли способ, чтобы сделать возможным в андроид

+0

конвертировать его в JPG н попробовать .... –

ответ

2

попробовать это:

вызов этой функции decodeSampledBitmapFromFile(String filePath,int reqWidth, int reqHeight)

который reqHeight и reqWidth является ваш размер ImageView. также обратите внимание, что если потребуется много времени и отправьте вам ANR, запустите его на отдельном thread, а затем установите его на ImageView.

Код от doc, что я изменил его, чтобы прочитать файл изображения.

public static int calculateInSampleSize(
      BitmapFactory.Options options, int reqWidth, int reqHeight) { 
    // Raw height and width of image 
    final int height = options.outHeight; 
    final int width = options.outWidth; 
    int inSampleSize = 1; 

    if (height > reqHeight || width > reqWidth) { 

     final int halfHeight = height/2; 
     final int halfWidth = width/2; 

     // Calculate the largest inSampleSize value that is a power of 2 and keeps both 
     // height and width larger than the requested height and width. 
     while ((halfHeight/inSampleSize) > reqHeight 
       && (halfWidth/inSampleSize) > reqWidth) { 
      inSampleSize *= 2; 
     } 
    } 

    return inSampleSize; 
    } 

    public static Bitmap decodeSampledBitmapFromFile(String filePath,int reqWidth, int reqHeight) { 

     // First decode with inJustDecodeBounds=true to check dimensions 
     final BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inJustDecodeBounds = true; 
     BitmapFactory.decodeFile(filePath, options); 

     // Calculate inSampleSize 
     options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); 

     // Decode bitmap with inSampleSize set 
     options.inJustDecodeBounds = false; 
     return BitmapFactory.decodeFile(filePath, options); 
    } 

Ссылка:

Loading Large Bitmaps Efficiently

+0

Am выходит из Exception памяти еще – Geethu

+0

вы можете изменить 'inSampleSize' 4, попробовать я думаю, что это будет работать – mmlooloo

+0

попробовал мое предложение? Я просто хочу знать результат, потому что это очень интересно для меня. – mmlooloo

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