expo-camera on Android の ratio
整理
Androind には、camera previewのにアスペクト比を設定するオプションがある
"y:x"
デフォルトは "4:3"
カメラからはこの比に従った画像が取得されるが、表示される画面の比は別で(つまりcssで)指定する必要がある
たとえばratio="16:9"でstyles={{aspectRatio: '1'}}とするとpreview自体は正方形になるが画像は縦に潰れて表示される
<Camera type={type} ratio="16:9" style={{ aspectRatio: '1' }} />
iPhoneだと潰れずにCSSにならって表示されるのか?lemonadern.icon
自分のiPhoneのカメラは壊れているので確認できない
あとで確認する
getSupportedRatioAsyncを使うと、そのデバイスでサポートされているアスペクト比を取得できる
実践
正方形としてcamera previewを表示する:
ratioには"1:1を渡す
cssは横幅を指定してaspectRatio: '1'
(スマホを縦向きで使うことだけ想定するなら)どんなスマホの画面も縦のほうが長いのでこれでいい
画面いっぱいに表示する:
デバイスによって画面のアスペクト比が違うためAndr #wip