android get Bitmap or sound from assets
public static Bitmap getBitmapFromAsset(Context context, String filePath) { AssetManager assetManager = context.getAssets(); InputStream istr; Bitmap bitmap = null; try { istr = assetManager.open(filePath); bitmap = BitmapFactory.decodeStream(istr); } catch (IOException e) { // handle exception } return bitmap;}
the path is simply your file name fx bitmap.png. if you use subfolder bitmap/ then its bitmap/bitmap.png
Use this code its working
try { InputStream bitmap=getAssets().open("icon.png"); Bitmap bit=BitmapFactory.decodeStream(bitmap); img.setImageBitmap(bit);} catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace();}
Update
While decoding Bitmap we more often meet with memory overflow exception if Image size is very big. So reading article How to display Image efficiently will help you.
The accepted answer never closes the InputStream
. Here is a utility method for getting a Bitmap
in the assets folder:
/** * Retrieve a bitmap from assets. * * @param mgr * The {@link AssetManager} obtained via {@link Context#getAssets()} * @param path * The path to the asset. * @return The {@link Bitmap} or {@code null} if we failed to decode the file. */public static Bitmap getBitmapFromAsset(AssetManager mgr, String path) { InputStream is = null; Bitmap bitmap = null; try { is = mgr.open(path); bitmap = BitmapFactory.decodeStream(is); } catch (final IOException e) { bitmap = null; } finally { if (is != null) { try { is.close(); } catch (IOException ignored) { } } } return bitmap;}