2012-05-18 10 views
1

크기가 1000x800 인 서버에 이미지가 있습니다. I는 다음 방법을 사용하여 다운로드 :매우 큰 이미지를위한 안드로이드 이미지 스케일링 방법;

  1. 다운로드 전체 이미지, 그것에서 비트 맵을 디코딩하고 그것을 확장 배열의 화소 값을 넣어.

  2. 이미지를 다운로드하여 캔버스에 넣고 캔버스 크기를 조정하십시오.

어떤 접근 방식이 메모리 문제와 관련이 있습니까?

답변

1

최선의 방법이 될 것이다 :

3) 다운 샘플링/스케일 이미지가

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

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

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

    // Decode bitmap with inSampleSize set 
    options.inJustDecodeBounds = false; 
    return BitmapFactory.decodeResource(res, resId, options); 
} 

그것은 here을 설명 디코딩없이. 샘플 코드도 거기 있습니다.

관련 문제