ตรวจสอบการวางแนวบนโทรศัพท์ Android


คำตอบ:


676

การกำหนดค่าปัจจุบันตามที่ใช้เพื่อกำหนดว่าทรัพยากรใดที่จะดึงมาจากConfigurationวัตถุ'ทรัพยากร:

getResources().getConfiguration().orientation;

คุณสามารถตรวจสอบการวางแนวโดยดูที่ค่าของมัน:

int orientation = getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
    // In landscape
} else {
    // In portrait
}

ข้อมูลเพิ่มเติมสามารถพบได้ในนักพัฒนาซอฟต์แวร์ Android


2
โอ้ขอโทษฉันเข้าใจผิดฉันคิดว่าคุณกำลังบอกว่าบริการจะไม่เห็นการเปลี่ยนแปลงการกำหนดค่าหากการเปลี่ยนแปลงการกำหนดค่า สิ่งที่คุณกำลังอธิบายคือ ... ดีมันไม่เห็นอะไรเลยเพราะไม่มีอะไรเปลี่ยนแปลงเพราะตัวเรียกใช้ล็อคการวางแนวหน้าจอและไม่อนุญาตให้เปลี่ยน ดังนั้นมันถูกต้องที่. orientation จะไม่เปลี่ยนแปลงเนื่องจากการวางแนวนั้นไม่เปลี่ยนแปลง หน้าจอยังคงเป็นแนวตั้ง
hackbod

สิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถทำได้คืออ่านการปฐมนิเทศจากเซ็นเซอร์ที่เกี่ยวข้องกับคณิตศาสตร์ที่ฉันไม่กระตือรือร้นในการหาคำตอบในขณะนี้
อาร์คิมีดีสทราโนะ

13
ไม่มีอะไรน่ารำคาญ หน้าจอไม่หมุนมันยังคงอยู่ในแนวตั้งไม่มีการหมุนเพื่อดู หากคุณต้องการตรวจสอบว่าผู้ใช้ย้ายโทรศัพท์ของพวกเขาอย่างไรโดยไม่คำนึงว่าหน้าจอหมุนได้อย่างไรคุณต้องดูเซ็นเซอร์โดยตรงและตัดสินใจว่าคุณต้องการตีความข้อมูลที่คุณได้รับเกี่ยวกับการเคลื่อนย้ายอุปกรณ์อย่างไร
hackbod

4
สิ่งนี้จะล้มเหลวหากการวางแนวหน้าจอได้รับการแก้ไข
AndroidDev

7
หากกิจกรรมล็อคจอแสดงผล ( android:screenOrientation="portrait") วิธีการนี้จะคืนค่าเดิมโดยไม่คำนึงว่าผู้ใช้หมุนอุปกรณ์อย่างไร ในกรณีนี้คุณต้องใช้ accelerometer หรือเซ็นเซอร์แรงโน้มถ่วงเพื่อหาทิศทางที่ถูกต้อง
Cat

169

หากคุณใช้การวางแนว getResources (). getConfiguration (). ในอุปกรณ์บางอย่างคุณจะเข้าใจผิด เราใช้วิธีการที่ครั้งแรกในhttp://apphance.com ต้องขอบคุณการบันทึกจากระยะไกลของ Apphance เราสามารถเห็นมันบนอุปกรณ์ต่าง ๆ และเราเห็นว่าการกระจายตัวของมันมีบทบาทที่นี่ ฉันเห็นกรณีแปลก ๆ : ตัวอย่างเช่นการสลับแนวตั้งและสี่เหลี่ยม (?!) ใน HTC Desire HD:

CONDITION[17:37:10.345] screen: rotation: 270 orientation: square
CONDITION[17:37:12.774] screen: rotation: 0 orientation: portrait
CONDITION[17:37:15.898] screen: rotation: 90
CONDITION[17:37:21.451] screen: rotation: 0
CONDITION[17:38:42.120] screen: rotation: 270 orientation: square

หรือไม่เปลี่ยนการวางแนวเลย:

CONDITION[11:34:41.134] screen: rotation: 0
CONDITION[11:35:04.533] screen: rotation: 90
CONDITION[11:35:06.312] screen: rotation: 0
CONDITION[11:35:07.938] screen: rotation: 90
CONDITION[11:35:09.336] screen: rotation: 0

ในทางกลับกันความกว้าง () และความสูง () ถูกต้องเสมอ (ถูกใช้โดยตัวจัดการหน้าต่างดังนั้นจึงควรดีกว่า) ฉันคิดว่าความคิดที่ดีที่สุดคือการตรวจสอบความกว้าง / ความสูงเสมอ ถ้าคุณคิดว่าสักครู่นี่คือสิ่งที่คุณต้องการ - เพื่อที่จะทราบว่าความกว้างนั้นเล็กกว่าความสูง (แนวตั้ง) ตรงข้าม (แนวนอน) หรือถ้าพวกเขาเหมือนกัน (จตุรัส)

จากนั้นก็ลงมาที่รหัสง่ายๆนี้:

public int getScreenOrientation()
{
    Display getOrient = getWindowManager().getDefaultDisplay();
    int orientation = Configuration.ORIENTATION_UNDEFINED;
    if(getOrient.getWidth()==getOrient.getHeight()){
        orientation = Configuration.ORIENTATION_SQUARE;
    } else{ 
        if(getOrient.getWidth() < getOrient.getHeight()){
            orientation = Configuration.ORIENTATION_PORTRAIT;
        }else { 
             orientation = Configuration.ORIENTATION_LANDSCAPE;
        }
    }
    return orientation;
}

3
ขอบคุณ! การเริ่มต้น "การวางแนว" นั้นไม่จำเป็น
MrMaffen

getWidthและgetHeightจะไม่คัดค้าน
FindOut_Quran

3
@ user3441905 ใช่พวกเขาเป็น ใช้getSize(Point outSize)แทน ฉันใช้ API 23
WindRider

@ jarek-potiuk มันเลิกใช้แล้ว
นรก

53

อีกวิธีหนึ่งในการแก้ไขปัญหานี้คือการไม่พึ่งพาค่าส่งคืนที่ถูกต้องจากจอแสดงผล แต่อาศัยการแก้ไขปัญหาทรัพยากร Android

สร้างไฟล์layouts.xmlในโฟลเดอร์res/values-landและres/values-portมีเนื้อหาดังต่อไปนี้:

ความละเอียด / ค่าที่ดิน / layouts.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="is_landscape">true</bool>
</resources>

ความละเอียด / ค่าพอร์ต / layouts.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="is_landscape">false</bool>
</resources>

ในซอร์สโค้ดของคุณคุณสามารถเข้าถึงการวางแนวปัจจุบันดังนี้:

context.getResources().getBoolean(R.bool.is_landscape)

1
ฉันชอบสิ่งนี้เพราะมันใช้วิธีใดก็ตามที่ระบบกำหนดทิศทางแล้ว
KrustyGString

1
คำตอบที่ดีที่สุดสำหรับการตรวจสอบแนวนอน / แนวตั้ง!
vtlinh

สิ่งที่จะเป็นค่าในไฟล์ค่าเริ่มต้น?
Shashank Mishra

46

วิธีระบุทิศทางปัจจุบันของโทรศัพท์โดยสมบูรณ์:

    public String getRotation(Context context){
    final int rotation = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getOrientation();
           switch (rotation) {
            case Surface.ROTATION_0:
                return "portrait";
            case Surface.ROTATION_90:
                return "landscape";
            case Surface.ROTATION_180:
                return "reverse portrait";
            default:
                return "reverse landscape";
            }
        }

Chear Binh Nguyen


6
มีการพิมพ์ผิดในโพสต์ของคุณ - มันควรจะพูดว่า. getRotation () ไม่ใช่ getOrientation
Keith

1
+1 สำหรับสิ่งนี้ ฉันจำเป็นต้องรู้ทิศทางที่แน่นอนไม่ใช่แค่แนวนอนและแนวตั้ง getOrientation () ถูกต้องเว้นแต่ว่าคุณใช้ SDK 8+ ซึ่งในกรณีนี้คุณควรใช้ getRotation () รองรับโหมด 'ย้อนกลับ' ใน SDK 9+
Paul

6
@Keith @ Paul ผมจำไม่ได้ว่าgetOrientation()ผลงาน getRotation()แต่นี้ไม่ถูกต้องถ้าใช้ ได้รับการหมุนแหล่งที่มา"Returns the rotation of the screen from its "natural" orientation." ดังนั้นบนโทรศัพท์ที่บอกว่า ROTATION_0 เป็นแนวตั้งนั้นถูกต้อง แต่บนแท็บเล็ตการวางแนว "ธรรมชาติ" ของมันน่าจะเป็นแนวนอนและ ROTATION_0 ควรกลับแนวนอนแทนที่จะเป็นแนวตั้ง
jp36

ดูเหมือนว่านี่เป็นวิธีที่ต้องการเข้าร่วมส่งต่อ: developer.android.com/reference/android/view/
......

นี่เป็นคำตอบที่ผิด ทำไมมันถึงได้รับการโหวต? getOrientation (float [] R, float [] ค่า) คำนวณการวางแนวของอุปกรณ์ตามเมทริกซ์การหมุน
user1914692

29

นี่คือตัวอย่างข้อมูลโค้ดการแนะนำการวางแนวหน้าจอโดยhackbodและMartijn :

❶ทริกเกอร์เมื่อเปลี่ยนการวางแนว:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
        int nCurrentOrientation = _getScreenOrientation();
    _doSomeThingWhenChangeOrientation(nCurrentOrientation);
}

❷รับการปฐมนิเทศปัจจุบันตามที่hackbodแนะนำ:

private int _getScreenOrientation(){    
    return getResources().getConfiguration().orientation;
}

are มีทางเลือกอื่นสำหรับรับการวางแนวหน้าจอปัจจุบัน❷ติดตามโซลูชันMartijn :

private int _getScreenOrientation(){
        Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
        return display.getOrientation();
}

หมายเหตุ : ฉันลองทั้งคู่ใช้❷ & ❸ แต่ใน RealDevice (NexusOne SDK 2.3) การวางแนวมันจะส่งคืนการวางแนวที่ไม่ถูกต้อง

★ดังนั้นฉันแนะนำให้ใช้วิธีแก้ปัญหา ❷เพื่อให้ได้แนวหน้าจอที่มีข้อดีมากกว่า: ชัดเจนง่ายและทำงานเหมือนมีเสน่ห์

★ตรวจสอบการคืนทิศทางอย่างระมัดระวังเพื่อให้แน่ใจว่าถูกต้องตามที่เราคาดหวัง (อาจมี จำกัด ขึ้นอยู่กับข้อกำหนดอุปกรณ์ทางกายภาพ)

หวังว่ามันจะช่วย


16
int ot = getResources().getConfiguration().orientation;
switch(ot)
        {

        case  Configuration.ORIENTATION_LANDSCAPE:

            Log.d("my orient" ,"ORIENTATION_LANDSCAPE");
        break;
        case Configuration.ORIENTATION_PORTRAIT:
            Log.d("my orient" ,"ORIENTATION_PORTRAIT");
            break;

        case Configuration.ORIENTATION_SQUARE:
            Log.d("my orient" ,"ORIENTATION_SQUARE");
            break;
        case Configuration.ORIENTATION_UNDEFINED:
            Log.d("my orient" ,"ORIENTATION_UNDEFINED");
            break;
            default:
            Log.d("my orient", "default val");
            break;
        }

13

ใช้getResources().getConfiguration().orientationมันอย่างถูกวิธี

คุณต้องระวังภูมิประเทศประเภทต่างๆภูมิทัศน์ที่อุปกรณ์ใช้ตามปกติและอื่น ๆ

ยังไม่เข้าใจวิธีจัดการสิ่งนั้น


12

บางเวลาผ่านไปเนื่องจากคำตอบส่วนใหญ่ได้รับการโพสต์และบางส่วนก็ใช้วิธีการและค่าคงที่ในขณะนี้

ฉันได้อัปเดตโค้ดของ Jarekเพื่อไม่ใช้วิธีการและค่าคงที่เหล่านี้อีกต่อไป:

protected int getScreenOrientation()
{
    Display getOrient = getWindowManager().getDefaultDisplay();
    Point size = new Point();

    getOrient.getSize(size);

    int orientation;
    if (size.x < size.y)
    {
        orientation = Configuration.ORIENTATION_PORTRAIT;
    }
    else
    {
        orientation = Configuration.ORIENTATION_LANDSCAPE;
    }
    return orientation;
}

โปรดทราบว่าโหมดConfiguration.ORIENTATION_SQUAREไม่ได้รับการสนับสนุนอีกต่อไป

ฉันพบว่าสิ่งนี้น่าเชื่อถือในทุกอุปกรณ์ที่ฉันทดสอบในทางตรงกันข้ามกับวิธีการแนะนำการใช้งาน getResources().getConfiguration().orientation


โปรดทราบว่า getOrient.getSize (ขนาด) ต้องใช้ระดับ 13 api
เลสเตอร์

6

ตรวจสอบการวางแนวหน้าจอในรันไทม์

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();

    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();        
    }
}

5

มีอีกวิธีหนึ่งในการทำ:

public int getOrientation()
{
    if(getResources().getDisplayMetrics().widthPixels>getResources().getDisplayMetrics().heightPixels)
    { 
        Toast t = Toast.makeText(this,"LANDSCAPE",Toast.LENGTH_SHORT);
        t.show();
        return 1;
    }
    else
    {
        Toast t = Toast.makeText(this,"PORTRAIT",Toast.LENGTH_SHORT);
        t.show();
        return 2;
    }       
}


4

ทดสอบในปี 2019 ใน API 28 ไม่ว่าผู้ใช้จะตั้งแนวตั้งหรือไม่และด้วยรหัสที่น้อยที่สุดเมื่อเปรียบเทียบกับคำตอบที่ล้าสมัยอื่นคำตอบต่อไปนี้จะให้การวางแนวที่ถูกต้อง:

/** @return The {@link Configuration#ORIENTATION_SQUARE}, {@link Configuration#ORIENTATION_PORTRAIT}, {@link Configuration#ORIENTATION_LANDSCAPE} constants based on the current phone screen pixel relations. */
private int getScreenOrientation()
{
    DisplayMetrics dm = context.getResources().getDisplayMetrics(); // Screen rotation effected

    if(dm.widthPixels == dm.heightPixels)
        return Configuration.ORIENTATION_SQUARE;
    else
        return dm.widthPixels < dm.heightPixels ? Configuration.ORIENTATION_PORTRAIT : Configuration.ORIENTATION_LANDSCAPE;
}

2

ฉันคิดว่ารหัสนี้อาจใช้งานได้หลังจากการเปลี่ยนการวางแนวมีผล

Display getOrient = getWindowManager().getDefaultDisplay();

int orientation = getOrient.getOrientation();

แทนที่ฟังก์ชัน Activity.onConfigurationChanged (การกำหนดค่า newConfig) และใช้ newConfig การวางแนวถ้าคุณต้องการรับการแจ้งเตือนเกี่ยวกับการวางแนวใหม่ก่อนที่จะเรียก setContentView


2

ฉันคิดว่าใช้ getRotationv () ไม่ได้ช่วยเพราะ http://developer.android.com/reference/android/view/Display.html#getRotation%28%29 getRotation () คืนค่าการหมุนหน้าจอจาก "ธรรมชาติ" ปฐมนิเทศ.

ดังนั้นถ้าคุณไม่รู้จักการวางแนวที่เป็นธรรมชาติ

ฉันพบวิธีที่ง่ายกว่า

  Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
  Point size = new Point();
  display.getSize(size);
  int width = size.x;
  int height = size.y;
  if(width>height)
    // its landscape

โปรดบอกฉันว่ามีปัญหากับคนนี้หรือไม่?


2

เช่นนี้จะซ้อนทับโทรศัพท์ทั้งหมดเช่น oneplus3

public static boolean isScreenOriatationPortrait(Context context) {
         return context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
         }

รหัสที่เหมาะสมดังต่อไปนี้:

public static int getRotation(Context context){
        final int rotation = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getOrientation();

        if(rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180){
            return Configuration.ORIENTATION_PORTRAIT;
        }

        if(rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270){
            return Configuration.ORIENTATION_LANDSCAPE;
        }

        return -1;
    }

1

โพสต์เก่าฉันรู้ ไม่ว่าจะวางแนวหรือสลับ ฯลฯ ฉันออกแบบฟังก์ชั่นนี้ซึ่งใช้ในการตั้งค่าอุปกรณ์ในทิศทางที่ถูกต้องโดยไม่จำเป็นต้องรู้ว่าการจัดเรียงแนวตั้งและแนวนอนบนอุปกรณ์เป็นอย่างไร

   private void initActivityScreenOrientPortrait()
    {
        // Avoid screen rotations (use the manifests android:screenOrientation setting)
        // Set this to nosensor or potrait

        // Set window fullscreen
        this.activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        DisplayMetrics metrics = new DisplayMetrics();
        this.activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);

         // Test if it is VISUAL in portrait mode by simply checking it's size
        boolean bIsVisualPortrait = ( metrics.heightPixels >= metrics.widthPixels ); 

        if( !bIsVisualPortrait )
        { 
            // Swap the orientation to match the VISUAL portrait mode
            if( this.activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT )
             { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }
            else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ); }
        }
        else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); }

    }

ทำงานเหมือนจับใจ!


1

ใช้วิธีนี้

    int orientation = getResources().getConfiguration().orientation;
    String Orintaion = "";
    switch (orientation)
    {
        case Configuration.ORIENTATION_UNDEFINED: Orintaion = "Undefined"; break;
        case Configuration.ORIENTATION_LANDSCAPE: Orintaion = "Landscrape"; break;
        case Configuration.ORIENTATION_PORTRAIT:  Orintaion = "Portrait"; break;
        default: Orintaion = "Square";break;
    }

ใน String คุณมี Oriantion


1

มีหลายวิธีในการทำเช่นนี้โค้ดนี้ใช้ได้กับฉัน

 if (this.getWindow().getWindowManager().getDefaultDisplay()
                .getOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
             // portrait mode
} else if (this.getWindow().getWindowManager().getDefaultDisplay()
                .getOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
                      // landscape
        }

1

ฉันคิดว่าวิธีนี้ง่ายมาก

if (context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
  user_todat_latout = true;
} else {
  user_todat_latout = false;
}

โดยทั่วไปแล้วคำตอบมีประโยชน์มากขึ้นหากพวกเขามีคำอธิบายว่ารหัสนี้มีจุดประสงค์เพื่ออะไรและเหตุใดจึงแก้ปัญหาได้โดยไม่ต้องแนะนำผู้อื่น
Tom Aranda

ใช่ขอโทษที่ฉันคิดว่ามันไม่จำเป็นต้องอธิบายอย่างแน่นอนว่าบล็อกการวางแนวการตรวจสอบรหัสนี้ถ้าการกำหนดค่าเท่ากัน ORIENTATION_PORTRAIT นั่นหมายถึงแอปในแนวตั้ง :)
Issac Nabil

1

ง่าย ๆ แค่สองบรรทัดโค้ด

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
    // do something in landscape
} else {
    //do in potrait
}

0

ง่ายและสะดวก :)

  1. สร้างเลย์เอาต์ xml 2 รูปแบบ (เช่นแนวตั้งและแนวนอน)
  2. ที่ไฟล์ java ให้เขียน:

    private int intOrientation;

    ที่onCreateวิธีการและก่อนที่จะsetContentViewเขียน:

    intOrientation = getResources().getConfiguration().orientation;
    if (intOrientation == Configuration.ORIENTATION_PORTRAIT)
        setContentView(R.layout.activity_main);
    else
        setContentView(R.layout.layout_land);   // I tested it and it works fine.

0

นอกจากนี้ยังเป็นที่น่าสังเกตว่าในปัจจุบันมีเหตุผลที่ดีน้อยกว่าในการตรวจสอบการวางแนวที่ชัดเจนด้วยgetResources().getConfiguration().orientationหากคุณทำเช่นนั้นด้วยเหตุผลด้านโครงร่างเนื่องจากการสนับสนุน Multi-Window ที่เปิดตัวใน Android 7 / API 24+ อาจทำให้ยุ่งเหยิง ปฐมนิเทศ. ควรพิจารณาการใช้งานที่ดีกว่า<ConstraintLayout>และเค้าโครงทางเลือกขึ้นอยู่กับความกว้างหรือความสูงที่มีอยู่พร้อมกับเทคนิคอื่น ๆ สำหรับการพิจารณาว่าจะใช้รูปแบบใดเช่นการมีอยู่หรือไม่ของชิ้นส่วนบางอย่างที่แนบมากับกิจกรรมของคุณ


0

คุณสามารถใช้สิ่งนี้ (ตามที่นี่ ):

public static boolean isPortrait(Activity activity) {
    final int currentOrientation = getCurrentOrientation(activity);
    return currentOrientation == ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT || currentOrientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
}

public static int getCurrentOrientation(Activity activity) {
    //code based on https://www.captechconsulting.com/blog/eric-miles/programmatically-locking-android-screen-orientation
    final Display display = activity.getWindowManager().getDefaultDisplay();
    final int rotation = display.getRotation();
    final Point size = new Point();
    display.getSize(size);
    int result;
    if (rotation == Surface.ROTATION_0
            || rotation == Surface.ROTATION_180) {
        // if rotation is 0 or 180 and width is greater than height, we have
        // a tablet
        if (size.x > size.y) {
            if (rotation == Surface.ROTATION_0) {
                result = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
            } else {
                result = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
            }
        } else {
            // we have a phone
            if (rotation == Surface.ROTATION_0) {
                result = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
            } else {
                result = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
            }
        }
    } else {
        // if rotation is 90 or 270 and width is greater than height, we
        // have a phone
        if (size.x > size.y) {
            if (rotation == Surface.ROTATION_90) {
                result = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
            } else {
                result = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
            }
        } else {
            // we have a tablet
            if (rotation == Surface.ROTATION_90) {
                result = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
            } else {
                result = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
            }
        }
    }
    return result;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.