我有一个Android应用程序,其中有多个图像在assets文件夹中。现在我想要创建这些图像的数组。我的问题是:当我们的图像在drawable中时,我们可以像下面这样创建一个数组:
int x[] = {
R.drawable.ss,
R.drawable.aa, R.drawable.sk,
R.drawable.xx
};
等等。当我的图片位于资产文件夹中时,我该如何创建与上面相同的图像数组?我想在类级别上创建一个数组。
我有一个Android应用程序,其中有多个图像在assets文件夹中。现在我想要创建这些图像的数组。我的问题是:当我们的图像在drawable中时,我们可以像下面这样创建一个数组:
int x[] = {
R.drawable.ss,
R.drawable.aa, R.drawable.sk,
R.drawable.xx
};
等等。当我的图片位于资产文件夹中时,我该如何创建与上面相同的图像数组?我想在类级别上创建一个数组。
您需要像下面这样逐个读取图像:
您可以使用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;
}
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};
try {
Bitmap bmp=BitmapFactory.decodeStream(am.open("009.gif"));
imageView.setImageBitmap(bmp);
} catch (IOException e) {
e.printStackTrace();
}