关于InputStream的困惑

时间:2014-05-22 15:10:13

标签: java android

我正在尝试制作一个简单的应用。我有一个返回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;
}

3 个答案:

答案 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);
    }