Android ekran koordinatları nasıl çalışır?


154

Android ile çalışıyorum Animationve Android koordinat sisteminin oldukça kafa karıştırıcı olduğunu gördüm, bu yüzden Android'de koordinatların nasıl çalıştığı hakkında bu soruyu sormak için buradayım. Bir görüntüyü diğerine taşımak için bu görüntüyü takip ediyorum ama işe yaramıyor gibi görünüyor:

görüntü

Yanıtlar:


295

resim açıklamasını buraya girin

Bu görüntü her iki yönü de gösterir (Yatay / Dikey)

MaxX ve MaxY almak için okumaya devam edin.

Android cihaz ekran koordinatları için aşağıdaki kavram işe yarayacaktır.

Display mdisp = getWindowManager().getDefaultDisplay();
Point mdispSize = new Point();
mdisp.getSize(mdispSize);
int maxX = mdispSize.x; 
int maxY = mdispSize.y;

EDIT: - ** ** 13 yaşından büyük android api seviyesini destekleyen cihazlar için. Kodun altında kullanabilirsiniz.

    Display mdisp = getWindowManager().getDefaultDisplay();
    int maxX= mdisp.getWidth();
    int maxY= mdisp.getHeight();

(x, y): -

1) (0,0) sol üst köşedir.

2) (maxX, 0) sağ üst köşedir

3) (0, maksY) sol alt köşedir

4) (maxX, maxY) sağ alt köşedir

burada maxX ve maxY, yukarıdaki kodda aldığımız piksel cinsinden ekran maksimum yüksekliği ve genişliğidir.


Elimizde varsa Viewile layout_width="1" layout_height="1"o sol üst (0,0) 'dir anlamına geleceğini ve sağ alt (1, 1)' dir? Bunun Viewgenişliği = 2 ve yüksekliği = 2 olduğu anlamına gelmez mi ? Çelişki.
riwnodennyk

@AAnkit lütfen itiraf edebilir misiniz, bu hem ekran yönleri (Dikey ve Yatay) için geçerlidir, ekran yön değiştirme değişikliği (0,0) -> sol üst köşeyi etkiler. (maxX, 0) -> sağ üst köşe (0, maxY) -> sol alt köşe (maxX, maxY) -> sağ alt köşe
Qadir Hussain

Görüntü için çok teşekkür ederim. gerçekten hayatımı kurtardı.
Sharl Sherif

19

Android API seviye 13 için bunu kullanmanız gerekir:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int maxX = size.x; 
int maxY = size.y;

Ardından (0,0) ekranın sol üst köşesidir ve (maxX, maxY) ekranın sağ alt köşesidir.

API 13'ten bu yana ekran boyutu için 'getWidth ()' kullanımdan kaldırıldı

Ayrıca getwidth () ve getHeight () android.view.View sınıfının yöntemleridir. Bu nedenle java sınıfınız View sınıfını genişlettiğinde windowManager ek yükü yoktur.

          int maxX=getwidht();
          int maxY=getHeight();

kadar basit.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.