Android: Lock Screen Orientation in Android


Lock Screen Orientation in Android

หากเราไม่อยากให้โปรแกรม android ที่เราเขียนขึ้นมา ไม่พลิกไปพลิกมาหละก็ เราต้องทำอย่างไรบ้างหละ วิธีมันก้อง่ายนิดเดียวเอง แค่ใส่ฟังก์ชั่น setRequestedOrientation เข้าไปในหน้าที่อยากจะล็อกหน้าจอเอาไว้เท่านั้นเอง มาดูฟังก์ชั่นที่ต้องใช้งานและฟังก์ชั่นอื่นๆ ที่เกี่ยวข้องดีกว่า

1) ฟังก์ชั่นแรกใช้เมื่อต้องการล็อกหน้าจอ พารามิเตอร์ที่ใส่เข้าไปได้แก่
  • ล็อกแนวนอน SCREEN_ORIENTATION_LANDSCAPE
  • ล็อกแนนตั้ง SCREEN_ORIENTATION_PORTRAIT

[Code sample – How to lock the orientation]

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

2) ฟังก์ชั่นสำหรับตรวจสอบว่า ขณะนี้หน้าจออยู่ในแนวตั้งหรือแนวนอน

ใช้ฟังก์ชั่น this.getResources().getConfiguration().orientation

[Code sample – How to detect the current orientation]
switch (this.getResources().getConfiguration().orientation)
{
case Configuration.ORIENTATION_PORTRAIT:
// Do something here
break;
case Configuration.ORIENTATION_LANDSCAPE:
// Do something here
break;
case Configuration.ORIENTATION_SQUARE:
// Do something here
break;
default:
throw new Exception(“Unexpected orientation enumeration returned”);
break;
}
3) ฟังก์ชั่นที่ใช้เปลี่ยนแนวหน้าจอ เมื่อเกิดอีเวนท์เกิดขึ้น
[Code sample – Locking rotation while performing an action]
// Sets screen rotation as fixed to current rotation setting
private void mLockScreenRotation()
{     // Stop the screen orientation changing during an event
switch (this.getResources().getConfiguration().orientation)
{
case Configuration.ORIENTATION_PORTRAIT:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
case Configuration.ORIENTATION_LANDSCAPE:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
}
}
4) ฟังก์ชั่นที่ใช้เพื่อระบุว่า ไม่มีการล็อกหน้าจออีกแล้ว ใช้ฟังก์ชั่น setRequestedOrientation นั้นหละ แต่เซ็ตเป็น ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED แล้วโปรแกรมจะไม่มีการล็อกหน้าจอนะครับ
[Code sample – How to re-enable screen rotation]
// allow screen rotations again
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

Referrence

adaydesign :)

About adaydesign

นักพัฒนาแอพพลิเคชั่นบนโมบาย [iPhone Android] คนหนึ่งซึ่งอยากจะบันทึกเรื่องราวของเส้นทางนักพัฒนาโมบายแอพพลิเคชั่นเอาไว้ในบล็อคน้อยๆ แห่งนี้ เผื่อจะแบ่งบันและแลกเปลี่ยนความรู้ให้กับคนอื่นๆ ได้บ้าง :) Mobile Application Developer; Flash Mobile, iPhone/iPad, Android Mobile Phone/Tablet and Blackberry Playbook.

Posted on มีนาคม 5, 2011, in [Dev] Android, [Link] Android and tagged , , , , . Bookmark the permalink. ใส่ความเห็น.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: