カメラを縦固定のアプリで使用したいのですが

2,432 views
Skip to first unread message

山田

unread,
Feb 10, 2011, 4:28:13 AM2/10/11
to Android-SDK-Japan
山田です。前回のカメラの表示優先の件はありがとうございました。

表題のとおりなのですが
xmlでportraitを使用したアプリでカメラのプレビューを行いたいのですが
色々しらべた結果
xperiaではカメラのパラメータで
params.set("orientation", "portrait");
と指定すると、カメラの画像が正常に表示されるのですが
他の端末だと縦と横が逆になったりします。(しなかったりもします)

アプリは2.0以降を対象に考えているのですが
params.set("orientation", "portrait");
以外になにか方法などがありましたら教えていただけないでしょうか
よろしくお願いします。


Keiji Ariyama

unread,
Feb 10, 2011, 4:43:03 AM2/10/11
to android-...@googlegroups.com
有山です。

 カメラを使うときは、Camera.Parametersで縦横設定を変えるのは機種依存が
大きいため、今はまだ、Activityそのものを横画面(Landscape)固定にしてプレ
ビューしたほうが良いようです。

 具体的には、AndroidManifest.xmlの当該Activityの属性
値"android:screenOrientation"に、"landscape"を設定します。

--
Keiji,
ml_an...@c-lis.co.jp

山田

unread,
Feb 10, 2011, 5:10:00 AM2/10/11
to Android-SDK-Japan
山田です。
返信ありがとうございます。
やはりカメラは横固定にしたほうがよさそうですね。
ただ他のカメラ以外の表示部分が縦固定にしたいので
Activityを複数もって対処しようかと思います。

山田

unread,
Feb 10, 2011, 6:23:41 AM2/10/11
to Android-SDK-Japan
ARカメラ等をみると
どうも縦固定でカメラの表示を行っているみたいですね
ホームボタンを長押しした時の表示が縦の表示だったので・・・
申し訳ないのですが引き続きなにかありましたらよろしくお願いします。

Keiji Ariyama

unread,
Feb 10, 2011, 6:31:23 AM2/10/11
to android-...@googlegroups.com
有山です。

 カメラについてはあまり詳しくないのですが、参考までに。
 API Level 8(2.2)からは、CameraクラスにsetDisplayOrientationが追加され
ています。プレビューの映像を回転させる仕組みで、「portraitモードにいい
よ」とか書いてますね。

http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)

 何かの参考になれば幸いです。

(2011年02月10日 20:23), 山田 wrote:
> ARカメラ等をみると
> どうも縦固定でカメラの表示を行っているみたいですね
> ホームボタンを長押しした時の表示が縦の表示だったので・・・
> 申し訳ないのですが引き続きなにかありましたらよろしくお願いします。
>

--
Keiji,
ml_an...@c-lis.co.jp

山田

unread,
Feb 10, 2011, 6:54:21 AM2/10/11
to Android-SDK-Japan
山田です。
有山様、情報ありがとうございます。
2.2で確認したところsetDisplayOrientationで修正できました。
しかし2.2がネックですね・・・

山田

unread,
Feb 10, 2011, 7:09:33 AM2/10/11
to Android-SDK-Japan
何がしたいのかを細かく書いていなかったので追加しておきます
現在GLSurfaceViewとcameraの両方を表示しており
GLSurfaceViewは縦固定で表示したいので
cameraの方で悩んでいるといった所です。

egg

unread,
Feb 11, 2011, 2:31:59 AM2/11/11
to android-...@googlegroups.com
山田さん
江川です。2.1以前では以下のような方法で実現できるのではないかと思います。
cameraは、オープン済みのCameraのインスタンスです。
3行目はもしかしたら不要かもしれませんのでとりあえずコメントにしています。

Camera.Parameters parameters = camera.getParameters();
parameters.set("orientation", "portrait");
//parameters.setRotation(90);
camera.setParameters(parameters);

ただし、この方法では逆に2.2以降では動きませんので、2.2以降は有山さんの
方法、2.1以前はこの方法、といったようにバージョンごとに処理を変える必要があります。

------------------------------------------
EGAWA Takashi

2011/2/10 山田 <jou...@crest.ocn.ne.jp>:
> 何がしたいのかを細かく書いていなかったので追加しておきます
> 現在GLSurfaceViewとcameraの両方を表示しており
> GLSurfaceViewは縦固定で表示したいので
> cameraの方で悩んでいるといった所です。
>
> --
> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグループにアクセスしてください。
>
>

Message has been deleted

山田

unread,
Feb 11, 2011, 5:39:05 AM2/11/11
to Android-SDK-Japan
山田です。
間違えて一度書き込みを削除してしまったので改めて書き込みさせてもらいます。
とりあえず今回はopenglを回転させて対応しようと思います。
parameters.set("orientation", "portrait");
上の処理だとどうも機種依存が大きいみたいなので・・・
皆様ありがとうございました。
Reply all
Reply to author
Forward
0 new messages