2011-07-08 23 views
6

İçinde iki ImageView bulunan bir düzen var. Her bir görüntü sabit bir en boy oranına sahiptir, örneğin ilk görüntü 320x160, ikincisi 320x320'dir. Düzen dikey olarak hizalanır. Bu iki görüntünün birbirine yapıştırılmasını ve ekran kenarlarından birine (genişlik veya yükseklik) sığacak şekilde ölçeklenmesini ve diğer tarafı proprotion olarak ölçeklendirmesini istiyorum. scaleType = fitCenter'ı kullanmayı denedim, ancak sorun, farklı en boy oranına sahip farklı telefonlarda, resimlerin birbirine benzememesi, aralarında siyah bir alan bulunması. Görseli kullanamıyorum çünkü ekranlar farklı bir orana sahip (480x854 ve 480x800) ve benim düzenime ihtiyacım var, aynı ölçeklenmiş orana sahip.Farklı düzenlerde sabit en boy oranıyla android düzeni ölçeklendirme

Herhangi bir yardım için teşekkür ederiz.

İşte şimdi benim düzen geçerli:

<LinearLayout 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<ImageView android:src="@drawable/im_menu" 
android:adjustViewBounds="true" 
android:scaleType="fitCenter" 
android:layout_width="fill_parent" android:layout_height="wrap_content" 
android:layout_gravity="center_horizontal|top" 
android:layout_weight="0.7" 
> 
</ImageView> 
<ImageView android:src="@drawable/im_field" 
android:adjustViewBounds="true" 
android:scaleType="fitCenter" 
android:layout_width="fill_parent" android:layout_height="wrap_content" 
android:layout_gravity="center_horizontal|top" 
android:layout_weight="0.3" 
> 
</ImageView> 
</LinearLayout> 

cevap

2

Çok göreceli değerlerle düzeni ağırlığını kullanabilirsiniz. Örneğin,% 30 ve diğer% 70 ile bir alan istiyorsanız, sadece çocuklara 0,3 ve 0,7 ile kiloları bakın ve çocuklarda genişlik ve yükseklik belirtmeyin. O geliştirici kılavuzu (uç bölümünde açıklanmaktadır):

developer guide - linear layout

Ayrıca RelativeLayout yerine LinearLayout kullanmak gerekebilir.

+0

örneğin

<ImageView ... android:layout_height="fill_parent" ...> 

adjustViewBounds için yüksekliğe fill_parent set etki aynıdır. Açıklamaya çalıştığım gibi, ebeveynlerin boyutlarını kullanamıyorum çünkü 480x800 oranı = 1.66 ve 480x854 oranı = 1,77 olduğu için, düzeni her zaman 1,5 oranında tutmalı ve ekranın en alt boyutunu doldurmam gerekiyor. –

+0

@Northern Captain: Mutlak değerleri piksel cinsinden kullanmayın, yukarıda anlattığım gibi göreceli değerleri deneyin. Hizalama kısmı sadece ağırlıkla elde edilemez, yerçekimine bakmalı veya gereksinimlerinize göre RelativeLayout kullanmalısınız. –

+0

Çocuklardan layout_width ve yüksekliğini kaldırırsam kaybolurlar. –

6

Sen kullanabilirsiniz:

android:adjustViewBounds="true" 

ve yine benim detaylar

İlgili konular