2011-02-03 12 views
11

Bir düzen dosyasında yazılı ve ben android okuyabilir Bu nasılImageView marjı programatik olarak nasıl okunur? Benim Faaliyetinizdeki layout_marginLeft niteliğini:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

     <ImageView android:id="@+id/news_image" 
      android:layout_height="fill_parent" 
      android:layout_width="fill_parent" 
      android:layout_marginLeft="18dip" 
      android:layout_marginRight="18dip" 
      android:background="#aaaaaa" /> 

</LinearLayout> 

benziyor bir ImageView var?

Aşağıdaki kodu denedim ancak ImageView numaralı LayoutParams hiçbir kenar boşluğuna sahip değil (örneğin, LinearLayout.LayoutParams ürününe sahip).

ImageView imageView = (ImageView)findViewById(R.id.news_image); 
LayoutParams lp = imageView.getLayoutParams(); 

int marginLeft = lp.marginLeft; // DON'T do this! It will not work 
           // cause there is no member called marginLeft 

Herhangi önerileri nasıl bir ImageView gelen marjı alınır?

Teşekkür ederiz!

cevap

25

Eğer görünümü içindedir düzeni özgü tipine LayoutParams döküm zorunda Bu bir iç görüşünüz olmaktan vardır. LinearLayout aşağıdakileri yapmanız gerekecek:

ImageView imageView = (ImageView)findViewById(R.id.news_image); 
LinearLayout.LayoutParams lp = 
       (LinearLayout.LayoutParams) imageView.getLayoutParams(); 

şimdi lp sen margin* alanları erişim sağlayacak.

+0

Teşekkür ederiz! Bu çalışıyor. Android dokümanlarında hiçbir şey bulamadım. Belki sadece yanlış yerlere baktım. – OemerA

6

bunun için senin sol aşağıdaki gibidir:


LinearLayout. LayoutParams lp = (android.widget.LinearLayout.LayoutParams) imageView.getLayoutParams(); 

    int i=lp.leftMargin;