画面の回転(上下反転)方法について

1,607 views
Skip to first unread message

はしもと

unread,
Jan 29, 2013, 9:27:30 PM1/29/13
to android-g...@googlegroups.com
橋本と申します。
ご存知であれば教えてください。
 
画面の上下を反転させたいのですが、xmlファイルに記述してもコードで記述しても
上下の反転ができません。
 
コードで試した時はxmlファイルには記述せず、onCreate内で試しました。
LANSCAPEとREVERSE_LANDSCAPEはちゃんと反応して、画面の向きが変わってくれます。
REVERSE_PORTRAITはthis.getRequestedOrientation()の戻り値をみる限りは反応して
はいるのですが、画面が上下反転してくれません。
 
@Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  this.requestWindowFeature(Window.FEATURE_NO_TITLE);
  this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  
  setContentView(R.layout.activity_main);
  
  //this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  //this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
  //this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
    
  //動画の再生に関する設定
  mPreview = (SurfaceView) findViewById(R.id.surfaceView1);
  //ナビゲーションバー(ソフトキー)を非表示にする
  mPreview.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
  holder = mPreview.getHolder();
  holder.addCallback(this);
}
 
@Override
 public void onResume(){
  super.onResume();
  if(this.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT){
   Log.d("test","not reverse_portrait");
  }else{
   Log.d("test","reverse_portrait");
  }
}

田代透

unread,
Jan 29, 2013, 11:10:12 PM1/29/13
to android-g...@googlegroups.com
http://developer.android.com/reference/android/content/pm/ActivityInfo.html

SCREEN_ORIENTATION_FULL_SENSORを使ったら?
ドキュメントは読んでみるものだと思います


2013年1月30日 11:27 はしもと <doroi...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 



--
--
Toru Tashiro
toru...@gmail.com

はしもと

unread,
Jan 30, 2013, 1:11:37 AM1/30/13
to android-g...@googlegroups.com
英語苦手なので間違えてるかもしれませんが、
SCREEN_ORIENTATION_FULL_SENSORは
端末の向きによって画面を回転させる物ですよね?
 
言い方が不味かったですね。
縦画面が上下反転した状態で画面を固定させたいので
REVERSE_PORTRAITを使おうとしていました。
 

田代透

unread,
Jan 30, 2013, 2:17:51 AM1/30/13
to android-g...@googlegroups.com
シンプルなレイアウト(LinearLayoutとTextView)だと、SCREEN_ORIENTATION_REVERSE_PORTRAITで逆転表示ができました。
(Galaxy Nexus 4.1)

同じプログラムがHT-03Aに無理やり2.2.1を載せたものでは逆転表示できませんでした。

ハードウエア(ファームウエア)の制限ということはないでしょうか。何をお使いですか?



2013年1月30日 15:11 はしもと <doroi...@gmail.com>:
 

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

はしもと

unread,
Jan 30, 2013, 3:29:12 AM1/30/13
to android-g...@googlegroups.com
Toruさん
 
使用端末はGalaxy Nexus(4.1.1)です。
レイアウトはLinearLayout(vertical)にSurfaceViewとButtonを1個ずつ入れています。
 

田代透

unread,
Jan 30, 2013, 9:17:03 AM1/30/13
to android-g...@googlegroups.com
シンプルにLinearLayoutにボタン4つを配置して

このコードで、

package com.example.ratationtest;

import android.os.Bundle;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.util.Log;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
   
    public void portraitProc(View Button) {
        Log.v("test", "portrait");
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
    public void r_portraitProc(View Button) {
        Log.v("test", "r_portrait");
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
    }
    public void landscapeProc(View Button) {
        Log.v("test", "landscape");
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
    public void r_landscapeProc(View Button) {
        Log.v("test", "r_landscape");
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
    }
}


各ボタンに、onClick="~Proc" と定義して 4つのボタンを押すことでローテートを手動で設定出きるようにすると
Galaxy Nexus 4.1.1 ならどの方向にも回ると思います。

 それで回って、作っているアプリでは回らないとすると、使っているビューがREVERSE_PORTRAITに対応していない
とかかもしれません。



2013年1月30日 17:29 はしもと <doroi...@gmail.com>:
Toruさん
 
使用端末はGalaxy Nexus(4.1.1)です。
レイアウトはLinearLayout(vertical)にSurfaceViewとButtonを1個ずつ入れています。
 

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

Hiroaki GOTO as GORRY

unread,
Jan 30, 2013, 9:28:25 AM1/30/13
to android-g...@googlegroups.com

後藤 浩昭(GORRY)です。

GNは(標準のROMで使っている限りでは)REVERSE_PORTRAIT非対応です。
タブレットサイズ端末ではほとんどが対応していると思いますが、
フォンサイズではあまり多くない気がします。


In message <24c59e91-08db-475c...@googlegroups.com>
"Re: [android-group-japan: 21824] 画面の回転(上下反転)方法について"
"はしもと <doroi...@gmail.com>" wrote:

> Toruさん
>
> 使用端末はGalaxy Nexus(4.1.1)です。
> レイアウトはLinearLayout(vertical)にSurfaceViewとButtonを1個ずつ入れています。
>
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>



--
Hiroaki GOTO as "GORRY" : 後藤 浩昭
EMAIL: gorr...@gmail.com

田代透

unread,
Jan 30, 2013, 9:36:23 AM1/30/13
to android-g...@googlegroups.com
情報有り難うございます

なるほど、そういう制限もやはりありましたか。
うちのGNはGoogleのROM(4.1.1)を入れていたので標準ではないですね。

ただ、エミュレーターだと 2.2まではREVERSEは効かず
2.3.?以降だと4方向効いていたので、出きるかなと思ってしまいました。


2013年1月30日 23:28 Hiroaki GOTO as GORRY <gorr...@gmail.com>:



--
--
Toru Tashiro
toru...@gmail.com

はしもと

unread,
Jan 30, 2013, 7:46:03 PM1/30/13
to android-g...@googlegroups.com
Toruさん、後藤さん
 
情報有難う御座いました。
ROMを入れ換えるか、FULL_SENSORで使えるように作り直すか検討します。

田代透

unread,
Jan 30, 2013, 8:39:00 PM1/30/13
to android-g...@googlegroups.com

ちと残念な結果ですが、頑張って

ただ、FULL_SENSORを使ってもリバース対応していない端末だとひっくり返らないかも。
アプリにする前に簡単なプログラム(upしたようなの)で、確認しておいたほうがいいかもです。

2013/01/31 9:46 "はしもと" <doroi...@gmail.com>:
Toruさん、後藤さん
 
情報有難う御座いました。
ROMを入れ換えるか、FULL_SENSORで使えるように作り直すか検討します。

--
Reply all
Reply to author
Forward
0 new messages