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

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • calicoJake

    calicoJake

    29 EKİM 2007
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011