2016-07-22 43 views
0

画像を正常にキャプチャした1つのカメラアプリケーションを試しましたが、ImageViewに表示されません。 画像を撮ってチェックマークボタンを選択して画像を使用すると、アプリでImageViewに画像を表示しようとしている間にエラーが発生しました。ここでキャプチャされた画像が画像ビューに表示されない

はコード

public class MainActivity extends AppCompatActivity { 

ImageView result; 

static final int REQEST_IMAGE_CAPTURE=1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    Button click= (Button) findViewById(R.id.camera); 
    result= (ImageView) findViewById(R.id.imageView); 

    click.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      if(takePictureIntent.resolveActivity(getPackageManager())!=null) 
      { 
       startActivityForResult(takePictureIntent,REQEST_IMAGE_CAPTURE); 
      } 

     } 
    }); 
} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode==REQEST_IMAGE_CAPTURE && requestCode == RESULT_OK){ 
     Bundle extras=data.getExtras(); 
     Bitmap imageBitmap =(Bitmap)extras.get("data"); 
     result.setImageBitmap(imageBitmap); 
    } 
} 

}

そして、ここで事前にヘルプ

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Capture Image" 
    android:id="@+id/camera" 
    android:layout_marginBottom="68dp" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    /> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:minWidth="300dp" 
    android:minHeight="300dp" 
    /> 

感謝するためのXMLファイルです。

+0

targetSdkとは – Nisarg

+0

onActivityResult()でif条件を修正するif(requestCode == REQEST_IMAGE_CAPTURE && resultCode == RESULT_OK){' –

+0

APIレベル15以上 –

答えて

0

まず第一に、あなたはのAndroidManifest.xml内のすべての必要な権限を持っている保証:

<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

次のことを試してみてください。

保存したいパスを定義します。画像:

String path = Environment.getExternalStorageDirectory() + "/path/image.jpg"; 

1)以下の方法を使用します。カメラ起動する:

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     Log.i("MakeMachine", "resultCode: " + resultCode); 
     switch (resultCode) { 
      case 0: 
       Log.i("PhotoApp", "User cancelled"); 
       break; 
      case -1: 
       onPhotoTaken(); 
       break; 
     } 
    } 

3)ユーザが写真を撮るか、キャンセルするかどうか(カメラの活動の結果をキャプチャする

protected void startCameraActivity() { 
     File file = new File(path); 
     Uri outputFileUri = Uri.fromFile(file); 

     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 

     startActivityForResult(intent, 0); 
    } 

2))からの結果を解析するために、次のメソッドを実装

protected void onPhotoTaken() { 
     BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inSampleSize = 4; 
     Bitmap bitmap = BitmapFactory.decodeFile(path, options); 
     image.setImageBitmap(bitmap); 
    } 
+0

ありがとうございますが画像の保存に失敗しました –

+0

こんにちはニチン。 更新された投稿を確認してください!デバイスストレージ(アクセス権)で処理するための最初の基本要件を追加するのを忘れてしまった。 よろしく、 –

+0

同じ問題がまだ..... –

関連する問題