#実現したいこと Android studioでCamera2を使ってカメラ起動~撮影を実現したいです。
AndroidManifest.xmlに
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />追加済みです。
javaのソースコードで処理(起動~撮影)を実現するにはどういう記述を書けばよろしいでしょうか?
ソースコードを載せていただくとうれしいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
こんにちは。アプリ内でボタンを押してカメラを起動させたいということでしょうか。
あと、Camera2というのはIDなのかよくわかりませんが、今回はCameraということで進めていきます。
AndroidManifestに書いたことはとてもグッドです!
ボタンを押してカメラを起動するコードだと思うのでそれを中心的にやっていきます。
Java
1//MainActivity 2public class MainActivity extends AppCompatActivity { 3 4 private final static int RESULT_CAMERA = 1001;//これがないと保存できないです。 5 private ImageView imageView;//イメージビューの宣言文 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.activity_main); 11 12 imageView = findViewById(R.id.image_view);//先にImageViewをレイアウトビューのIDと紐づけ 13 14 Button cameraButton = findViewById(R.id.camera_button); 15 cameraButton.setOnClickListener(new View.OnClickListener() {//普通のインナークラスを使っての実装 16 @Override 17 public void onClick(View v) { 18 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 19 startActivityForResult(intent, RESULT_CAMERA); 20 } 21 }); 22 } 23 //これからImageViewにとった写真を張り付け。 24 @Override 25 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 26 if (requestCode == RESULT_CAMERA) { 27 Bitmap bitmap;//BitMapも最適。 28 // cancelしたケースも含む 29 if( data.getExtras() == null){ 30 Log.d("debug","cancel ?"); 31 return; 32 } 33 else{ 34 bitmap = (Bitmap) data.getExtras().get("data"); 35 36 // 画像サイズを計測 37 int bmpWidth = bitmap.getWidth(); 38 int bmpHeight = bitmap.getHeight(); 39 Log.d("debug",String.format("w= %d",bmpWidth)); 40 Log.d("debug",String.format("h= %d",bmpHeight)); 41 } 42 43 imageView.setImageBitmap(bitmap); 44 } 45 } 46} 47 48
撮った写真を保存する際にはRealmを使って保存することをお勧めします。
参考程度にレイアウトのXMLも貼っときます
XML
1<Button 2 android:id="@+id/camera_button" 3 android:layout_width="wrap_content" 4 android:layout_height="wrap_content" 5 android:layout_margin="20dp" 6 android:text="@string/button" /> 7 8 <ImageView 9 android:id="@+id/image_view" 10 android:scaleType="fitCenter" 11 android:layout_width="300dp" 12 android:layout_height="300dp" 13 android:contentDescription="@string/description"/>
投稿2018/01/04 23:56
編集2018/01/04 23:59退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/05 04:21