döndürür. ImageView'ın genişliği 0 olsun. Kod aşağıdadır.ImageView.getWidth(), 0
xml dosyası:
<ImageView
android:id="@+id/img"
android:layout_width="200dp"
android:layout_height="200dp" />
Etkinlik: Bu kadar pek çok yerde bu kodu yerleştirmeniz gerekir olarak kodunun altına kullanmak istemiyorum
@Override
protected void onResume() {
super.onResume();
ImageView img = (ImageView) findViewById(R.id.img);
Log.d(TAG, "width : " + img.getWidth());
}
.
ViewTreeObserver vto = img.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
ImageView img = (ImageView) findViewById(R.id.img);
Log.d(TAG, "width : " + img.getWidth());
return true;
}
});
Benim geçici çözüm: Aslında sonradan bir aktivitede bu kodu eklemek gerek yoktu. Aktivite dışı bir sınıfa ekledim ve ImageView'ın genişliği yerine Bitmap görüntüsünün genişliğini kullandım ve şimdi bu sorun yok.
, ekran henüz düzenlendiği edilmedi, tüm bileşenlerin hala 0x0 vardır. Bunun yerine getMeasuredWidth öğesini çağırmayı veya düzen bittikten sonra çağırmayı düşünün – njzk2
@ njzk2 getMeasuredWidth() ayrıca 0 değerini döndürür. – Geek