如何从Android中的资源加载图像列表?

时间:2015-04-22 05:01:31

标签: android bitmap imageview android-drawable android-assets

private void changePicture(int stageIndex){

    try{

        iv=(ImageView) findViewById(R.id.imageView2);
        Picture picture=new Picture();
        String v =picture.getPicFileName();
        InputStream ims = getAssets().open(v);
        Drawable d = Drawable.createFromStream(ims, null);
        iv.setImageDrawable(d);
        }catch(IOException ex){
           return;
        }       
}

我想从/asset文件夹中加载一个图像列表,所以我写了这个函数,但它没有用。有人能帮助我吗?

2 个答案:

答案 0 :(得分:4)

如果您的图像存储在资产目录的image文件夹中,则列表可以显示如下

private List<String> getImage(Context context) throws IOException
{
  AssetManager assetManager = context.getAssets();
  String[] files = assetManager.list("image");  
  List<String> it=Arrays.asList(files);
  return it;
} 

答案 1 :(得分:0)

Bitmap bm;
bm = getBitmapFromAsset("images" + File.separator + image.trim());
System.out.println("bmh==>"+bm.getHeight()+" "+"bmw==>"+bm.getWidth());
imageView.setImageBitmap(bm);


 /**
 * Retrieves Bitmap from Asset
 * @param strName
 * @return
 * @throws IOException
 */
    private Bitmap getBitmapFromAsset(String strName) throws IOException {
        AssetManager assetManager = getAssets();
        InputStream istr = assetManager.open(strName);
        Bitmap bitmap = BitmapFactory.decodeStream(istr);
        istr.close();
        return bitmap;
    }

在循环中尝试上面的代码并将所有位图保存在位图或arraylist数组中。

注意:在资产文件夹中创建一个文件夹 images ,并将所有图像存储在该文件夹中。

图片:这是图片的名称。