Abstract#
Topic#
- Camera2
Androidでちゃんとカメラが扱えるようになりたいが、結構奥が深い。camera2を使いたいが、サンプルとしてこれ[4]がシンプル。このサンプルで、TextureView.getSurfaceTexture()を呼ぶとき、NullPointerExceptionが起きやすい。Availableになってから呼ばないといけないので、呼び出し元をListenerのonSurfaceTextureAvailable()から呼ぶ必要があることに注意[5]。 |
- ViewからBitmap?
TextureViewだったら |
mTextureView.getBitmap();
で、ただのViewだったら、 |
arView.getDrawingCache(false);
でBitmapが取れる。 |
- Bitmapを重ねるには
Canvasクラスをつかって重ね書きしましょう。 |
Bitmap offBitmap = Bitmap.createBitmap(cameraMap.getWidth(), cameraMap.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvasForCombine = new Canvas(offBitmap); canvasForCombine.drawBitmap(cameraMap, null, new Rect(0, 0, cameraMap.getWidth(), cameraMap.getHeight()), null); canvasForCombine.drawBitmap(overlayMap, null, new Rect(0, 0, cameraMap.getWidth(), cameraMap.getHeight()), null);
Reference#
- [#4]株式会社BELLSOFT, 2018年4月13日, Androidアプリにおける最小限のカメラ機能の実装, https://bellsoft.jp/blog/system/detail_538
- [#5]TextureView, https://developer.android.com/reference/android/view/TextureView