我想根据https://xjaphx.wordpress.com/2011/10/02/store-and-use-files-in-assets/
加载图片文件夹结构如下所示(所有这些文件夹都是由Android Studio自动生成的,我只添加了资源文件夹):
这看起来与教程中的图片完全不同(例如res
位于src/main
此处以及教程res
和src
处于同一级别)。
我还有一个加载图片的代码:
ImageView imageView = (ImageView) findViewById(R.id.imageView);
try {
// get input stream
InputStream ims = getAssets().open("dd.jpg");
// load image as Drawable
Drawable d = Drawable.createFromStream(ims, null);
// set image to ImageView
imageView.setImageDrawable(d);
} catch(IOException ex){
return;
}
但是当我运行应用程序时,获取空指针异常。如果我将assets
移到其他地方(app/assets
以及Niechzeplynanaszepiesni/assets
),我不会收到任何错误,但屏幕仍为空。
活动的.xml
包含:
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
答案 0 :(得分:0)
您可以使用AssetManager使用其open()方法获取InputStream,然后使用BitmapFactory的decodeStream()方法获取位图。
private Bitmap getBitmapFromAsset(String strName)
{
AssetManager assetManager = getAssets();
InputStream istr = null;
try {
istr = assetManager.open(strName);
} catch (IOException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(istr);
return bitmap;
}