2009-12-19 4 views
16

assets/Files/android.gif와 같은 assets 폴더 안에 .gif 파일이 있습니다. 내가 두 번째 줄android에서 assets 폴더의 파일 열기

AssetManager mngr=getAssets(); 
InputStream is2=mngr.open("Files/android.gif"); 

에서 예외를 throw 파일을 열려고하면 그래서 내가 텍스트 파일을 열려고하면 동일한 코드가 작동에도 불구하고 이미지 파일을 엽니 다하기 위해 노력하고있어 그인가? 여기에서 문제가 될 수 있습니다. 내가 선호하는 생각

BufferedInputStream buf = new BufferedInputStream(mContext.openFileInput(value)); 
Bitmap bitmap = BitmapFactory.decodeStream(buf); 

답변

30

이 라인은

InputStream assetInStream=null; 

try { 
    assetInStream=getAssets().open("icon.png"); 
    Bitmap bit=BitmapFactory.decodeStream(assetInStream); 
    img.setImageBitmap(bit); 
} catch (IOException e) { 
    e.printStackTrace(); 
} finally { 
    if(assetInStream!=null) 
    assetInStream.close(); 
} 

perfectly-- 노력하고 있습니다. See How to display large image efficiently

+3

AFIK 스트림을 사용 – ruX

+0

@ruX 후 닫아야합니다 : 예 제대로 지적 문제 – Sameer

1

이미지를 res/drawable 디렉토리에 저장하는 것입니다. 그러면 다음과 같은 Drawable을 얻을 수 있습니다.

Drawable d = Resources.getSystem().getDrawable(R.drawable.android); 
1

: 상황이 변경되거나하지하지만 난 다음보기에서 표시 할 아이콘을 열었다 안드로이드 1.1에서 응용 프로그램을했고, 내가 그렇게처럼 한 경우 몰라

4

처리되지 않은 예외 유형 IOException에 대한 불만이 제기되는 것으로 의심됩니다. 이 경우, try-catch 블록에 mgr.open을 호출하여 InputStream 객체를 검색 할 때 발생할 수있는 예외를 처리해야합니다.

AssetManager mngr = getAssets(); 
try { 
    InputStream is2 = mngr.open("Files/android.gif"); 
} catch (final IOException e) { 
    e.printStackTrace(); 
} 
0

미나, 같은 문제가 있습니다 ... 이미지와 XML 파일이 "자산"내에 있고 XML 파일은 읽을 수 있지만 이미지는 읽을 수 없습니다. 몇 시간의 좌절 끝에 마침내 해결책을 찾았습니다! 내가 여기 솔루션을 게시 한

: 이미지가 다음 비트 맵으로 디코딩하기 전에 이미지 크기를 조절해야합니다 매우 큰 경우 Null-pointer issue displaying an image from assets folder Android 2.2 SDK