2013-02-24 1 views
1

이미지를로드하는 데 사용하는 이미지 경로가 3 개 또는 4 개가 있으므로 이미지 뷰로 설정합니다. 왜 오래 걸리지? 또는 더 나은 방법을 묻는 것이 더 빠를 것입니까? 하루의 끝에서 나는 미만 60 DP 높이의 이미지 뷰에 맞게 및작은 미리보기로 이미지로드 속도를 높이려면 어떻게해야합니까?

Uri mainImgeUri = Uri.parse(imagePath); 
InputStream imageStream; 
try { 
    imageStream = mActiviy.getContentResolver().openInputStream(mainImgeUri); 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inSampleSize = 8; 
    Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream, null, options); 
    mainImageIV.setImageBitmap(yourSelectedImage); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 

유스 케이스 폭을로드 오전 : 무슨 일 사용자가 5 개 이미지를 추가 할 것이다 (그가 그들을 선택할 수 있다는 것입니다 대부분 휴대 전화 카메라로 찍은 갤러리). 그는 save를 누르고 내 앱은 sqlite 데이터베이스에 경로를 저장합니다. 그런 다음 사용자가 응용 프로그램을 다시 열어 볼 때 내 응용 프로그램은 db에 모든 이미지의 경로를 가져오고 x 번 이상 코드를 실행하여 모든 이미지보기에 원하는 이미지가로드되도록합니다.

+0

AsyncTask를 사용하여 시도하십시오. –

+1

느리게 정의하십시오. 나는 수십 개의 정적 이미지가 담긴 앱을 가지고있다. 나는 손가락을 움직일 수있는만큼 빨리 그들을 스쳐 갈 수 있습니다. 나는 그것이 지연을 소개하는 contentResolver라고 생각한다. – Simon

+0

로드하려는 이미지의 크기는 어느 정도입니까? 또한 ImageView는 무엇을 위해 사용되고 있습니까? –

답변

0

Take 보기 http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

출력 이미지의 필요한 크기에 따라 정확한 inSampleSize를 계산하는 방법을 설명합니다. 또한 모든 픽셀 데이터를 메모리에로드 할 필요없이 큰 비트 맵을 참조하는 방법에 대해서도 설명합니다.

더 큰 이미지를 다시 샘플링하고 작은 이미지 만 메모리에로드하면 전체 프로세스가 훨씬 효율적으로 수행됩니다. 예제 코드는 리소스에서 비트 맵에 액세스하지만 사용자의 필요에 따라 쉽게 수정할 수 있습니다.

이 예에서주의해야 할 중요한 사항은 inJustDecodeBounds 및 calculateInSampleSize입니다.