从资产中读取图像并填充数组
Reading images from asset and fill in the array
我有一个画廊
我的图库中有一些可绘制的图片。像这样,首先我像这样将 into 放入 Integer Array 中。
Integer stickers_big[] = { R.drawable.stck1, R.drawable.stck2,...}
这是我的适配器:
class stickersAdapter extends BaseAdapter {
Context ctx;
public stickersAdapter(FirstActivity act) {
// TODO Auto-generated constructor stub
this.ctx = act;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return stickers_drawable.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageview = new ImageView(ctx);
imageview.setImageResource(stickers_drawable[position].intValue());
imageview.setScaleType(android.widget.ImageView.ScaleType.FIT_XY);
return imageview;
}
}
现在我想将我的图像放入资产中。我喜欢这个,我读了我的图像名称,然后将它设置到我的 imagview 中。但我只读了一个图像名称。我不知道如何读取我所有图像的名称并打开它们。
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageview = new ImageView(ctx);
AssetManager assetManager = getAssets();
try {
// get input stream
InputStream ims = assetManager.open("stck1.png");
// create drawable from stream
Drawable d = Drawable.createFromStream(ims, null);
// set the drawable to imageview
imageview.setImageDrawable(d);
}
catch(IOException ex) {
}
return imageview;
}
}
How to read ALL of my images then open them?
Now I want to put my images into assets .
先把你的图片放在image文件夹里,然后用这个方法
int imageResource = ctx.getResources().getIdentifier("@drawable/stck1".replace(".jpg", ""), null,ctx.getPackageName());
imageview.setImageResource(imageResource);
假设您的资产文件夹中有此层次结构
assets
|__img1
|__img2
|__img3
你可以这样得到它们
try {
String[] list = getAssets().list("");
for(String img: list ){
//do your stuff here
}
} catch (IOException e) {
e.printStackTrace();
}
如果您在 assets 中有子文件夹,请将其名称放入 list("sub_folder");
您可以在 activity 中获取此列表,如果您处于片段中,则必须这样做 getActivity()getAssets().list("");
。一旦你有了你的图像名称列表,你可以将它传递给你的适配器并可以在你的 getView()
方法 w.r.t 位置使用它。
在资产目录中创建子文件夹。使用 getAssets().list() 从资产中获取所有文件名:
String[] images =getAssets().list("images");
ArrayList<String> listImages = new ArrayList<String>(Arrays.asList(images));
Now to set image in imageview you first need to get bitmap using image name from assets :
InputStream inputstream=mContext.getAssets().open("images/"
+listImages.get(position));
Drawable drawable = Drawable.createFromStream(inputstream, null);
imageView.setImageDrawable(drawable);
我有一个画廊 我的图库中有一些可绘制的图片。像这样,首先我像这样将 into 放入 Integer Array 中。
Integer stickers_big[] = { R.drawable.stck1, R.drawable.stck2,...}
这是我的适配器:
class stickersAdapter extends BaseAdapter {
Context ctx;
public stickersAdapter(FirstActivity act) {
// TODO Auto-generated constructor stub
this.ctx = act;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return stickers_drawable.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageview = new ImageView(ctx);
imageview.setImageResource(stickers_drawable[position].intValue());
imageview.setScaleType(android.widget.ImageView.ScaleType.FIT_XY);
return imageview;
}
}
现在我想将我的图像放入资产中。我喜欢这个,我读了我的图像名称,然后将它设置到我的 imagview 中。但我只读了一个图像名称。我不知道如何读取我所有图像的名称并打开它们。
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageview = new ImageView(ctx);
AssetManager assetManager = getAssets();
try {
// get input stream
InputStream ims = assetManager.open("stck1.png");
// create drawable from stream
Drawable d = Drawable.createFromStream(ims, null);
// set the drawable to imageview
imageview.setImageDrawable(d);
}
catch(IOException ex) {
}
return imageview;
}
}
How to read ALL of my images then open them?
Now I want to put my images into assets .
先把你的图片放在image文件夹里,然后用这个方法
int imageResource = ctx.getResources().getIdentifier("@drawable/stck1".replace(".jpg", ""), null,ctx.getPackageName());
imageview.setImageResource(imageResource);
假设您的资产文件夹中有此层次结构
assets
|__img1
|__img2
|__img3
你可以这样得到它们
try {
String[] list = getAssets().list("");
for(String img: list ){
//do your stuff here
}
} catch (IOException e) {
e.printStackTrace();
}
如果您在 assets 中有子文件夹,请将其名称放入 list("sub_folder");
您可以在 activity 中获取此列表,如果您处于片段中,则必须这样做 getActivity()getAssets().list("");
。一旦你有了你的图像名称列表,你可以将它传递给你的适配器并可以在你的 getView()
方法 w.r.t 位置使用它。
在资产目录中创建子文件夹。使用 getAssets().list() 从资产中获取所有文件名:
String[] images =getAssets().list("images");
ArrayList<String> listImages = new ArrayList<String>(Arrays.asList(images));
Now to set image in imageview you first need to get bitmap using image name from assets :
InputStream inputstream=mContext.getAssets().open("images/"
+listImages.get(position));
Drawable drawable = Drawable.createFromStream(inputstream, null);
imageView.setImageDrawable(drawable);