我正在尝试制作一个简单的应用。我有一个返回InputStream
的方法,然后我将这个流绑定到ImageView。但它并不像往常一样有效。没有例外。我究竟做错了什么。如何运行此代码?
String[] names;
Bitmap bmp;
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AssetManager am=getAssets();
img = (ImageView)findViewById(R.id.imageView1);
try {
names=am.list("myfiles");
InputStream is=bitmapStream(names[1]);
bmp =BitmapFactory.decodeStream(is);
img.setImageBitmap(bmp);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public InputStream bitmapStream(String name) throws FileNotFoundException {
InputStream is = null;
is = openFileInput(name);
return is;
}
答案 0 :(得分:0)
位图可以为null。我建议使用像Picasso这样的异步加载库。
答案 1 :(得分:0)
尝试从inputStream加载drawable。这里回答了类似的问题,它可能有所帮助: How to load a image from assets?
答案 2 :(得分:0)
如果您尝试从中加载,则尝试加载的文件不在该位置。
try { String folder = "myfiles"; names=am.list(folder); InputStream is= am.open(folder+"/"+names[0]); bmp =BitmapFactory.decodeStream(is); img.setImageBitmap(bmp); }