私はアプリを毎日リストビューで構成し、特定の画像を無限のギャラリークラスに配置しています。私がやろうとしているのは次のとおりです。
アプリのドローアブル リソース (無限ギャラリー クラス) から sd カードに連番で画像を保存し、
以下のように、保存された画像の連続番号を取得しようとしています:
最初の画像 :Image-1.png .
2番目の画像:Image-2.png .
3 番目の画像: Image-3.png 、
など、すべての日に適用されます。
を使用して:
Random generator = new Random();
これにより、次のようになります。
第 1 号: 画像を乱数で保存。
2 番目の問題: すべての画像を保存するのではなく、ユーザーが sd カードに保存するように選択し、一部の画像を 2 回または 3 回保存します。
これは、画像の保存に関連するコードの一部です。
View vi=convertView;
final ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.gallery_items, null);
holder=new ViewHolder();
holder.text=(TextView)vi.findViewById(R.id.textView1);
holder.image=(ImageView)vi.findViewById(R.id.image);
holder.button=(Button)vi.findViewById(R.id.button_save);
bm = BitmapFactory.decodeResource( mContext.getResources(), images[itemPos]);
holder.image.setImageBitmap(bm);
holder.button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
String root = Environment.getExternalStorageDirectory().toString();
File imagesFolder = new File(root + "/Days pictures");
imagesFolder.mkdirs();
Random generator = new Random();
int n = 1000;
n = generator.nextInt(n);
String fname = "Image-"+ n +".png";
File file = new File (imagesFolder, fname);
if (file.exists ())
file.delete ();
try {
FileOutputStream out = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
Toast.makeText(mContext, "Saved", Toast.LENGTH_LONG).show();}
catch (Exception e) {
e.printStackTrace();
Toast.makeText(mContext, e.toString(), Toast.LENGTH_SHORT).show();}}});
vi.setTag(holder);}
else holder=(ViewHolder)vi.getTag();
holder.text.setText(name[itemPos]);
final int stub_id=images[itemPos];
holder.image.setImageResource(stub_id);
return vi; }
private ImageView getImageView() {
ImageView i = new ImageView(mContext);
return i; } }
ご協力いただきありがとうございます 。