从资源文件夹加载图片

我有一个Android应用程序,我在资产文件夹中有几个图像。 现在我想制作一个这样的图像数组。 现在我的问题是: – 当我们的图像是可绘制的,我们可以创build一个数组

int x[] = { R.drawable.ss, R.drawable.aa, R.drawable.sk, R.drawable.xx }; 

等等。 当我的图像在资产文件夹中时,如何制作与上述图像相同的数组。 我想在课堂上做一个数组。

Solutions Collecting From Web of "从资源文件夹加载图片"

你必须像下面这样读取图像:

您可以使用AssetManager使用open()方法获取InputStream,然后使用BitmapFactory的decodeStream()方法获取Bitmap。

 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; } 

如果您的图像存储在资产目录中的图像文件夹中,则可以按照方式获取图像列表

 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; } 
  // load image from asset folder try { // get input stream InputStream ims = getAssets().open("avatar.jpg"); // load image as Drawable Drawable d = Drawable.createFromStream(ims, null); // set image to ImageView mImage.setImageDrawable(d); } catch(IOException ex) { return; } or you can create drawable array Drawable d []={d}; 

您对绘图和资产有错误的含义。 你可以把数组作为“drawables”,因为所有的drawable在R中都有自己的id(比如R.dawable.ss),所以如果你有合适的上下文,你可以使用指定的整数来绘制。

pipe理像图片这样的文件的其他方式是assests。 如果你想通过他们的IDpipe理图像,你必须添加这个图像做drawables。 换句话说,assert文件必须像dir中的简单文件一样进行pipe理。

您必须从资产中获取文件AssetManager am=this.getAssets(); 然后准备文件读取/写入。 如果你有图像,你可以做这样的事情:

 try { Bitmap bmp=BitmapFactory.decodeStream(am.open("009.gif")); imageView.setImageBitmap(bmp); } catch (IOException e) { e.printStackTrace(); }