2

ユーザーからのテキスト入力を読み取ります。この入力は、カメラで撮影している写真の名前として使用します。

この名前とイメージ名のパスを Sqlite データベースに保存します。

私がやろうとしているのは、OKをクリックして撮影した写真を受け入れた後、保存したパスをトーストに表示したいということです。

問題は、[OK] をクリックして画像を受け入れると、何も表示されず、カメラ アクティビティからカメラ アクティビティ「前のアクティビティ」を呼び出したアクティビティに切り替えることができないことです。

注:実際のデバイスではなくエミュレータを使用しています。

OnClickListener btn_TakePictureListener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        String imgPath = retrievePath();
        intent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri(imgPath));
        startActivityForResult(intent, RequestCode);
    } 
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RequestCode && resultCode == RESULT_OK) {
       String s = data.getData().toString();
       Toast.makeText(getBaseContext(), ""+s, Toast.LENGTH_SHORT).show();
    }           
}
4

1 に答える 1

0

画像の Uri を渡している場合は、カメラで撮影した画像を取得できます。

 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(  
    Environment.getExternalStorageDirectory(), "temp.jpg")));  
    startActivityForResult(intent, 1); 
    @Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        if (resultCode == NONE)  
            return;  

        if (requestCode == 1) {  
            // Set the file save path with directory  
            File picture = new File(Environment.getExternalStorageDirectory()  
                    + "/temp.jpg");  
            Uri imageuri= Uri.fromFile(picture);        
            //set to imageview here 
        } 
}   

編集:

onActivityResult でデータ uri を取得するには、次のように Camra Activiyt を開始します。

 Intent intent = new Intent(Intent.ACTION_PICK, null);  
 intent.setDataAndType(  
 MediaStore.Images.Media.EXTERNAL_CONTENT_URI,IMAGE_UNSPECIFIED);  
 startActivityForResult(intent, 2);     
     @Override  
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if (resultCode == NONE)  
        return;  
    if (requestCode == 1) { 
        Uri uriimg = data.getData();
        Toast.makeText(getBaseContext(), ""+uriimg.toString(), Toast.LENGTH_SHORT).show();
        }
    }
于 2012-06-03T15:16:52.040 に答える