2012-08-04 2 views
1

저는 작은 갤러리를 만들려고 노력해 왔으며 비트 맵은 항상 null을 반환합니다. 코드는 다음과 같다 : 당신은 주석 코드에서 볼 수 있듯이비트 맵은 항상 안드로이드에서 null을 반환합니다.

public View getView(int position, View convertView, ViewGroup parent) { 

     ImageView i = new ImageView(mContext); 
     //Toast.makeText(getApplicationContext(),imgArray2.length+ " Image path from gallery : " + imgArray2[position], Toast.LENGTH_SHORT).show(); 
     //Bitmap bitmap = BitmapFactory.decodeFile(imgArray2[position]); 
     //Uri uri = Uri.parse(imgArray2[position]); 
     //Bitmap bitmap = decodeFile(new File(uri.toString()).getAbsoluteFile()); 
     //Bitmap bitmap = BitmapFactory.decodeFile(uri.toString()); 
     //int imgID = getResources().getIdentifier(path, "drawable", "mypack.pack"); 
     BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inSampleSize = 15; 
     Bitmap bitmap = BitmapFactory.decodeFile(imgArray2[position], options); 
     //i.setImageResource(imgArray2[position]); 
     i.setImageBitmap(bitmap); 
     //Uri uri = Uri.parse(imgArray2[position]); 
     Toast.makeText(getApplicationContext(), "Image path from gallery : " + imgArray2[position], Toast.LENGTH_SHORT).show(); 
     //i.setImageURI(Uri.parse(imgArray2[position])); 
     i.setLayoutParams(new Gallery.LayoutParams(170, 170)); 
     i.setScaleType(ImageView.ScaleType.FIT_XY); 
     i.setBackgroundResource(mGalleryItemBackground); 
     return i; 
    } 

, 나는 많은 옵션을 노력했습니다. setImageURI은 작동하지만 이미지가 많을수록 축소해야합니다. 이미지는 SD 카드에 있습니다. 나는 이미지의 경로를 확인하고 그것이 맞다. 여기서 뭘 잘못하고 있니?

+0

logcat의 출력을 추가하십시오. – Frohnzie

답변

0

로그를 분석 했습니까? 이미지가 너무 커서 디코딩 할 수없는 경우 Dalvik VM은 메모리 요청을 거부하여 null 이미지가 반환됩니다.

+0

어떻게 그 크기를 줄일 수 있습니까? 저해상도 사진이 있더라도 여전히 null을 반환합니다. – Jonathan

+0

Bitmap의 설명서를 읽어보십시오. @홍옥 – JoxTraex

관련 문제