3

ImageButton を備えた Android アプリがあります。ユーザーがクリックすると、インテントが起動してカメラのアクティビティが表示されます。ユーザーが画像をキャプチャしたら、アプリの描画可能なフォルダーに保存し、ユーザーがクリックした同じ ImageButton に表示して、以前の描画可能な画像を置き換えたいと思います。ここに投稿されたアクティビティを使用しました:カメラから画像をキャプチャしてアクティビティに表示

...しかし、画像をキャプチャすると、アクティビティは ImageButton を含むアクティビティに戻りません。

編集コードは次のとおりです。

public void manage_shop()
{
    static final int CAMERA_REQUEST = 1888;

    [...]
    ImageView photo = (ImageView)findViewById(R.id.getimg);
    photo.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent camera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
            startActivityForResult(camera, CAMERA_REQUEST); 
        }
    }); 
   [...]
}

そして onActivityResult():

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
  ImageButton getimage = (ImageButton)findViewById(R.id.getimg);

    if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK)
    {  
        Bitmap getphoto = (Bitmap) data.getExtras().get("data"); 
        getimage.setImageBitmap(getphoto);
    }
}

キャプチャした画像を drawable フォルダにも保存するにはどうすればよいですか?

4

2 に答える 2

2

画像をファイルに保存したら、次のスニペットを使用してギャラリーに追加できます。

ContentValues values = new ContentValues(); 
values.put(MediaStore.Images.Media.TITLE, new File(path).toString());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.DATA, path);
getContentResolver().insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI , values);

ファイルをディレクトリに保存するには、次のようにします

private saveFileToDir() {
    final InputStream in = Wherever you input stream comes from;

    File f = generatePhotoFile();

    OutputStream out = new FileOutputStream(f);
    byte[] buffer = new byte[1024];

    int len;
    while ((len=in.read(buffer))>0)
    {
        out.write(buffer,0,len);
    }

    in.close();
    out.flush();
    out.close();        
}

private File generatePhotoFile() throws IOException {
    Date date = new Date();
    DateFormat df = new SimpleDateFormat("yyyymmdd_hhmmss");

    String newPicFile = "IMG_"+ df.format(date) + ".jpg";

    File f = new File(Environment.getExternalStorageDirectory()+"/DCIM/Camera/", newPicFile);

    if (!f.exists())
    {
        if(!f.getParentFile().exists())
            f.getParentFile().mkdir();

        f.createNewFile();
    }

    return f;
}       
于 2012-11-20T22:57:35.723 に答える
0

キャプチャした画像を drawable フォルダにも保存するにはどうすればよいですか?

ドローアブル フォルダーに画像を動的に保存することはできません。

見る:

res/drawable フォルダーに保存する Android 画像

その場で /res/drawable/ に書き込みますか?

于 2012-11-20T23:11:34.940 に答える