我需要在ViewPager中设置图像列表。我的资产文件夹中有一个图像列表。我将图像分组到资产内的单独文件夹中,如资产/图像; assets / images1,......现在我需要在int []数组中获取图像的id(比如说images1)。 我在String []数组中得到了images(images1)的名称。如何使用名称获取string []中图像的id。
答案 0 :(得分:1)
您必须将图像放在可绘制文件夹中才能访问它们。然后,您可以使用此代码从其名称中获取图像的ID ..
String yourImageName;
int resID = getResources().getIdentifier(yourImageName, "drawable", "com.example.yourpackegename.");
答案 1 :(得分:0)
在项目的“res /”中创建一个名为“drawable”的文件夹。
假设您有像......这样的图像。
RES /可绘制/图像,图像1,图像2,...
在你的ACTIVITY中,使用R.drawable.image,R.drawable.image1,....来调用它们。
"Now I need to get the id of the images (say images1 alone) in int[] array"
您也可以将它们存储在数组中,并使用“R.drawable.YOUR_IMAGE_NAME”调用它们,
int[] images = {R.drawable.image,R.drawable.image1,R.drawable.image2,R.drawable.image3,....};
希望这有帮助。
答案 2 :(得分:0)
int[] array_images = {
R.drawable.image0,
R.drawable.image1,
R.drawable.image2,
R.drawable.image3,
R.drawable........,
....
};
答案 3 :(得分:0)
通常,“id”仅针对资源文件夹中的图像创建,但不针对资产文件夹中的图像创建。
答案 4 :(得分:-1)
如果您将图像保留在资产中,则必须使用资产管理器对其进行解码。
公共类MainActivity扩展了Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
InputStream is = null;
ImageView imageView = new ImageView(this);
((RelativeLayout)findViewById(R.id.parent)).addView(imageView);
try {
is = getAssets().open("ic_launcher.png");//name of image in your asset folder
} catch (IOException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(is);
imageView.setImageBitmap(bitmap);
// if you dont want bitmap you can use drawable
// Drawable d = Drawable.createFromStream(is, null);
//imageView.setImageDrawable(d);
}
}
否则将您的图像保存在res中的drawable文件夹中,并使用R.drawable.imagename
进行使用