我正在尝试在创建应用程序时将所有图像加载到手机SD卡上。然后我有一个按钮,当我点击按钮时,下一个图像应显示。
到目前为止,我已将此代码包含在 onCreate()方法中,但我不知道如何将多个图像添加到文件夹中。
File sdCardDirectory = Environment.getExternalStorageDirectory();
File image = new File(sdCardDirectory, "uct.png");
boolean success = false;
// Encode the file as a PNG image.
FileOutputStream outStream;
try {
outStream = new FileOutputStream(image);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
/* 100 to keep full quality of the image */
outStream.flush();
outStream.close();
success = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
目前我有一系列图像ID,此刻这些图像存储在Drawable文件夹中。
int[] images = {R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4};
然后我有一个 onClick()方法,它增加私有索引变量以设置像这样的图像资源(这里imgView是ImageView)。
imgView.setImageResource(images[current_image_index]);
首先,我不知道如何在onCreate()方法中将多个图像添加到SD卡。此外,我不确定最好的方法是加载正确的'单击按钮时来自SD的图像。
我希望这是有道理的,请说明是否有任何需要澄清的事情。
答案 0 :(得分:0)
如果我在你的情况下,
创建ViewPager以显示所有图像。
您可以使用此代码获取所有图片网址。
String[] STAR = {"*"};
ArrayList<String> imageUri = new ArrayList<>();
Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI
, STAR, null, null, null);
if (cursor != null) {
if (cursor.moveToFirst()) {
do {
String path = cursor.getString(cursor
.getColumnIndex(MediaStore.Images.Media.DATA));
Log.i("Path", path);
imageUri.add(path);
getDate(path);
} while (cursor.moveToNext());
}
}
您可以将imageUri ArrayList传递给Viewpager适配器。在viewPager中 你可以使用任何图像库来加载图像。如果是Picasso。
Picasso.with(上下文) .load(URI) .resize(150150) .centerCrop() .into(ImageView的);