Android Studio カメラアプリ作成その8(カメラ表示3)
こんにちは かなで です。
続きです!
参考サイト
https://developer.android.com/training/camerax/preview?hl=ja
ここから始めます。
どこに入れるねん!
はい。正解はここでした。
ちょっとでも場所が違うとこうなります↓
なので、間違わない位置におくと、問題ビューはこうなります↓
クイックフィックスの表示を見ると、2番目は「インポート」がありますね。
「インポート」があればとりあえず「インポートする」というマイルールにのっとり、インポートします。
package net.kanalabo.cam import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.google.common.util.concurrent.ListenableFuture //class MainActivity : AppCompatActivity() { // override fun onCreate(savedInstanceState: Bundle?) { // super.onCreate(savedInstanceState) // setContentView(R.layout.activity_main) // } //} class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) cameraProviderFuture = ProcessCameraProvider.getInstance(this) cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() bindPreview(cameraProvider) }, ContextCompat.getMainExecutor(this)) } }
ContextCompatの文字が赤ではなくなり、importが1行追加されました。
残り2つになりました。
1つ目を考えます。「関数bindPreviewを作成する」という選択肢があります。
本来なら、これで新しい関数bindPreviewを作って、中を書いていくんでしょうが、今はコピペしてるだけであり、次でbindPreviewが出てくるので、一旦ここは放置します。
こちらは、よくわからなかったのですが、除去するとどうなるか
除去前↓
除去後↓
「Runnable」の文字がなくなりました。
だから何?わかりませんでしたが、結果これでOKでした。
ということで残り1つ。順調です。
続けるとまた長くなりそうなので、ここで区切ります!
package net.kanalabo.cam import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.google.common.util.concurrent.ListenableFuture //class MainActivity : AppCompatActivity() { // override fun onCreate(savedInstanceState: Bundle?) { // super.onCreate(savedInstanceState) // setContentView(R.layout.activity_main) // } //} class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) cameraProviderFuture = ProcessCameraProvider.getInstance(this) cameraProviderFuture.addListener({ val cameraProvider = cameraProviderFuture.get() bindPreview(cameraProvider) }, ContextCompat.getMainExecutor(this)) } }
最後までお読みいただきありがとうございました。
気になることがあったら、コメント頂けると嬉しいです。
自主学習も兼ねて記事にするかもしれません。