2011-11-30 37 views
1

當屏幕太小而不能包含所有佈局元素的自然尺寸時(比如說,當一個較小的屏幕進入橫向模式時),我注意到它看起來像Android先隱藏TextViews,然後縮小圖像直到它們適合。這是我的印象,也許我不完全正確。我的問題是:是否可以先調整圖像大小?這樣,文字仍然可見,即使圖像需要製作得相當小。如何在沒有足夠空間時調整圖像大小而不是文字消失?

這是許多例子之一。 scaleType是無關緊要的。根據我的觀察,如果Android在屏幕上沒有足夠的空間並需要決定是縮小圖像還是裁剪/隱藏文本...文本將首先受到傷害。對風景模式小屏幕

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:src="@drawable/large_image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="centerInside" /> 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 



</LinearLayout> 
+0

讓我們看看我們能與 – Blundell

+0

布倫德爾工作的一個XML例子,我希望這個問題簡單明瞭足夠了,但我加了一個例子。請記住,這只是一個簡單的例子......在沒有足夠空間顯示文本和全尺寸圖像的任何佈局中,文本似乎被推開而不是縮小圖像。 –

回答

1

這裏試試這個:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:src="@drawable/large_image" 
     android:layout_width="wrap_content" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:scaleType="centerInside" /> 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 



</LinearLayout> 

這會得到你的TextView到WRAP_CONTENT即不收縮,ImageView的到佔用剩餘的空間,因此如果它開始被壓扁,它將成爲壓扁的ImageView。

如果你擔心它變得過於龐大,設置android:maxHeight="200dip"或類似的東西

+0

優秀!這正是我需要的。確定什麼maxWidth和maxHeight是合適的可能是一個麻煩,但我可以忍受。我碰到一個重要的陷阱,其他人使用這個:maxHeight和maxWidth只工作如果android:adjustViewBounds =「true」 –

+1

@ChadSchultz看到我只需要一些XML的工作;-) – Blundell

相關問題