Etkinliğim oluşturulduktan sonra Android uygulamamdaki bir görünüme animasyon uygulamaya çalışıyorum. Bunu yapmak için, görünümün mevcut boyutunu belirlemem ve ardından mevcut boyuttan yeni boyuta ölçeklemek için bir animasyon ayarlamam gerekiyor. Görünüm, kullanıcıdan gelen girdiye bağlı olarak farklı boyutlara ölçeklendiğinden, bu bölüm çalışma zamanında yapılmalıdır. Düzenim XML olarak tanımlandı.
Bu kolay bir görev gibi görünüyor ve bununla ilgili pek çok SO sorusu var, ancak hiçbiri benim sorunumu çözmedi. Bu yüzden belki de bariz bir şeyi kaçırıyorum. Görüşümü şu şekilde ele alıyorum:
ImageView myView = (ImageView) getWindow().findViewById(R.id.MyViewID);
Bu cezayı çalışır ancak çağrılırken getWidth()
, getHeight()
, getMeasuredWidth()
, getLayoutParams().width
, vb, hepsi dönüş 0. Ayrıca arama elle denedim measure()
bir çağrı izledi görünümde getMeasuredWidth()
, ama bu hiçbir etkisi olmaz.
Bu yöntemleri çağırmayı ve etkinliğimdeki onCreate()
ve içindeki hata ayıklayıcıdaki nesneyi incelemeyi denedim onPostCreate()
. Çalışma zamanında bu görünümün tam boyutlarını nasıl anlayabilirim?
match_parent
). Bu durumda, Görünüm çizilmeden önce bile güvenli bir şekilde çağrılabilen daha basit bir çözüm (örneğin, Aktivitenizin onCreate () yönteminden) sadece Display.getSize () kullanmaktır; Ayrıntılar için stackoverflow.com/a/30929599/5025060 adresine bakın. @NikReiman'ın istediği şeyin bu olmadığını biliyorum, sadece bu basit yöntemi kullanabilenlere bir not bırakıyorum.