我有一个 android 应用程序,其中资产文件夹中有几个图像。现在我想制作一个图像数组。现在我的问题是:-当我们的图像处于可绘制状态时,我们可以制作一个像
int x[] = {
R.drawable.ss,
R.drawable.aa, R.drawable.sk,
R.drawable.xx
};
等等。当我的图像位于资产文件夹中时,如何制作与上述相同的图像数组。我想在班级级别制作一个数组。
您必须逐张阅读图像,如下所示:
您可以使用 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};
您对可绘制对象和资产有错误的含义。您可以将数组 od 设为“drawables”,因为所有可绘制对象在 R 中都有自己的 id(如 R.dawable.ss),因此如果您有适当的上下文,您可以使用指定的整数来获取可绘制对象。
管理图像等文件的其他方式是评估。如果你想通过他们的 id 管理图像,你必须添加这个图像做 drawables。换句话说,assets 文件必须像 dir 中的简单文件一样进行管理。
您必须从资产中获取文件AssetManager am=this.getAssets();
,然后准备要读取/写入的文件。如果你有图像,你可以这样做:
try {
Bitmap bmp=BitmapFactory.decodeStream(am.open("009.gif"));
imageView.setImageBitmap(bmp);
} catch (IOException e) {
e.printStackTrace();
}