0

私のプログラムは画像を(ビットマップとして)キャプチャしますが、カスタムパスでカスタム名で保存する方法がわかりません(そして見つけることができませんでした...これが私の画像キャプチャコードです。私はそれを行うことができますか?または、ビットマップではなく、別のデータ型として保存する方法はありますか? いくつかの助けは素晴らしいでしょう。ありがとう。

public class ShowMessagesPage extends Activity {
final static int CAMERA_RESULT = 0;
DBAdapter db = new DBAdapter(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show_messages_page);

    Button userButton = (Button)findViewById(R.id.button1);
    userButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        error();
        }});

    Button buttonPhoto = (Button)findViewById(R.id.buttonPhoto);
    buttonPhoto.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(i, CAMERA_RESULT);
        }});}

protected void onActivityResult(int requestCode, int resultCode,
          Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);

        if (resultCode == RESULT_OK) {
          Bundle extras = intent.getExtras();
          Bitmap bmp = (Bitmap) extras.get("data");



        }
      }

and the other codes..........
4

1 に答える 1

1

これを試して:

Intent getCameraImage = new Intent("android.media.action.IMAGE_CAPTURE");

File cameraFolder;

if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
    cameraFolder = new File(android.os.Environment.getExternalStorageDirectory(),"folder_name_of_your_choice");
else
    cameraFolder= ShowMessagesPage.this.getCacheDir();
if(!cameraFolder.exists())
    cameraFolder.mkdirs();

File photo = new File(Environment.getExternalStorageDirectory(), "folder_name_of_your_choice/camera_snap.jpg");
getCameraImage.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
initialURI = Uri.fromFile(photo);

startActivityForResult(getCameraImage, CAMERA_RESULT);

そして onActivityResult() で を処理しUri initialURIて、上記のコードで選択したパスに既に保存されている画像を取得します。画像ファイルの名前は次のようになります: camera_snap.jpg

注:Uri initialURIはグローバルに宣言されています。

于 2013-01-12T12:49:50.803 に答える