SORU
23 EYLÜL 2010, PERŞEMBE


Bir Android boyutunu belirleme zamanında görüntüleyin

Benim etkinlik oluşturulduktan sonra benim Android uygulaması bir görünüm için bir animasyon uygulamak için çalışıyorum. Bunu yapmak için, Görünüm geçerli boyutunu belirlemek ve yeni bir boyut mevcut boyutu ölçek için bir animasyon ayarlamak istiyorum. Bu kısım çalışma zamanı, görünüm beri farklı boyutları kullanıcı girişi bağlı olarak ölçekler yapılması gerekir. Benim düzeni XML olarak tanımlanır.

Bu kolay bir görev gibi görünüyor, ve bu YÜZDEN soru benim sorunum çözüldü eden yok ama bu konuda belli ki bir sürü vardır. Bu yüzden belki de bariz olan bir şeyi kaçırıyorum. Benim görüntülemek için ele alıyorum

ImageView myView = (ImageView)getWindow().findViewById(R.id.MyViewID);

Bu iyi çalışıyor, ama*3, , *, getLayoutParams().width, *getMeasuredWidth()*4 vb çağırırken., hepsi 0 döndürür. Elle de görünüm etkisi olmadığını getMeasuredWidth() ama bir ara izledi measure() aramayı denedim.

Bu yöntemler aramayı denedim ve benim aktivitede hata nesnesi teftiş onCreate() onPostCreate(). Nasıl zamanında bu görüş tam olarak boyutlarını öğrenebilir miyim?

CEVAP
4 Temmuz 2011, PAZARTESİ


İlk düzen beklemek Görünüm ViewTreeObserver kullanın. İlk düzen olacak sonra getWidth()/getHeight()/getMeasuredWidth()/getMeasuredHeight.

ViewTreeObserver viewTreeObserver = view.getViewTreeObserver();
if (viewTreeObserver.isAlive()) {
  viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
      view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
      viewWidth = view.getWidth();
      viewHeight = view.getHeight();
    }
  });
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • B4ROK

    B4ROK

    1 EKİM 2008
  • laptopmag

    laptopmag

    25 Ocak 2008
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010