2010-05-25 17 views
10

Ekranımın üstünde, aşağıdaki gibi görünen bir ImageView var:Bir ImageView için dinamik yüksekliği nasıl belirleyebilirim?

╔══════════════════════════════════════════════╗ 
║ ImageView ╔══════════════╗    ║ 
║    ║    ║    ║ 
║    ║ Actual image ║    ║ 
║    ║    ║    ║ 
║    ║    ║    ║ 
║    ║    ║    ║ 
║    ╚══════════════╝    ║ 
╚══════════════════════════════════════════════╝ 

Bunun altında bir dizi Düğme ve TextViews var ..

ImageView'ın yüksekliğini dinamik olarak artırmak istiyorum ekranın maksimum yüksekliğine bağlı olarak. Ekranın kenarı boyunca düğmeleri içeren düzeni hizalarım ve ekranın geri kalanının yukarıdaki ImageView tarafından alınmasını istiyorum.

Ayrıca, ImageView ortalanmış bir görüntü içerdiğinden, aynı zamanda görüntü seviyesini ve aşağıdaki düğmeleri görüntülemek için ekran çok küçükse, min yüksekliğini ve kaydırma çubuğu da ayarlamak istiyorum.

Teşekkürler!

Bu mümkün mü?

+13

+1. – womp

cevap

5

android:layout_width'u kullanırsanız ilk kısım oldukça kolay olmalıdır. Layout_width öğesini yalnızca ImageView (veya kapsayıcı) için ayarlarsanız, olabildiğince üst düzenini almak için genişler. Bu örnekte

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ImageView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:src="@drawable/icon" 
     android:scaleType="fitCenter" android:layout_weight="1" /> 
    <LinearLayout android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
     <!-- Put whatever you want in here --> 
    </LinearLayout> 
</LinearLayout> 

Ben tüm ekranı kaplayacak şekilde görüntüyü germe yapıyorum ama: Bir ImageView ekranın tüm kalanını aldı bir düzen istiyorsa Örneğin, bunu istiyorum Ayrıca "görüntü ekran için çok büyükse ve kaydırmaya ihtiyacım varsa ne" sorunuyla karşılaşırsınız. Bu durumda, yapmanız gereken tek şey, düzenine bir ScrollView eklemektir. Resmi dikey çok uzunsa ekran otomatik olarak kayar:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:fillViewport="true"> 
    <LinearLayout android:orientation="vertical" 
     android:layout_width="fill_parent" android:layout_height="fill_parent"> 
     <ImageView android:layout_width="fill_parent" 
      android:layout_height="wrap_content" android:src="@drawable/huge" 
      android:scaleType="fitCenter" android:layout_weight="1" /> 
     <LinearLayout android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 
      <!-- Insert your content here --> 
     </LinearLayout> 
    </LinearLayout> 
</ScrollView> 

önemli bir nokta not: Eğer scrollview üzerinde true android:fillViewport set yoksa, dolmaya olmaz çok küçük ImageViews tüm ekran. Ascii görselleştirme awesomeness için

0

tamamen sizin aradığınız cevap değil, ancak kesinlikle göreceli bir kaydırma görünümü ve sınıfınızdaki dinamik kodlama karışımı ile mümkündür. Şu anda bir programlama bilgisayarına yakın değil, ama belirsiz cevap "mümkün? evet!"

İlgili konular