Android | Cihazın ekran yönünü belirleme

Written by Super User. Posted in Android Yardımcı Kodlar

Bazı durumlarda Android barındıran cihazımızın ekran yönünü belirlememiz gerekebilir. En basitinden, bir oyun olduğunu düşünün, oyunda ekranın yatık olduğu yöne göre karakterimiz o yöne doğru hareket etmeye başlasın. İşte bu gibi durumlarda ekran yönünü nasıl belirleyebileceğimizi kod üzerinden göstereceğim.

Kullanacağımız method getRotation methodu. Bu methodumuz 2.2 sürümü için geçerli. Daha eski sürümlerde getOrientation methodunu kullanmalıyız. Bu method'un işlevine gelince, documentation'dan bakalım.

getRotation methodu;

Returns the rotation of the screen from its "natural" orientation. The returned value may be Surface.ROTATION_0 (no rotation), Surface.ROTATION_90, Surface.ROTATION_180, or Surface.ROTATION_270. For example, if a device has a naturally tall screen, and the user has turned it on its side to go into a landscape orientation, the value returned here may be either Surface.ROTATION_90 or Surface.ROTATION_270 depending on the direction it was turned. The angle is the rotation of the drawn graphics on the screen, which is the opposite direction of the physical rotation of the device. For example, if the device is rotated 90 degrees counter-clockwise, to compensate rendering will be rotated by 90 degrees clockwise and thus the returned value here will be Surface.ROTATION_90.

Kod parçamıza gelelim;

 

Context context = getApplicationContext();
Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
display.getMetrics(metrics);
int rotation = display.getRotation();
Log.e(null, Integer.toString(rotation));

Çıktısı :

Emulatorde çalıştığımız için, rotation değerimizi bize 0 olarak döndürdü. Documentationdan farklı rotation değerlerimizi nasıl elde ettiğimize bakabilirsiniz.