2010-11-10 119 views
1

我在每一行中都有一個相對佈局的滾動佈局。現在有一個圖像和一個文本,我想限制每行的高度到文本。將視圖的高度限制爲父視圖的高度

所以如果我的圖像高於文本,圖像將被調整到文本的高度(比例)。我怎樣才能在XML中做到這一點?

目前該行定義的樣子(從咕噥機器人執行復制):

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/RelativeLayout01" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"> 

    <ImageView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:id="@+id/userRowState" 
     android:src="@drawable/icon" /> 
    <TextView 
     android:layout_toLeftOf="@+id/userRowStatus" 
     android:layout_height="wrap_content" 
     android:text="[Name]" 
     android:id="@+id/userRowName" 
     android:ellipsize="end" 
     android:layout_width="wrap_content" 
     android:lines="1" 
     android:singleLine="true" 
     android:textSize="25sp" 
     android:layout_centerVertical="true" 
     android:layout_toRightOf="@+id/userRowState" /> 
    <!-- 
     singleLine is deprecated but it is the only way to get ellipsize work 
     it seems. 'inputType text, maxLines 1' didn't work. It's a known issue 
     that Google has been unable to reproduce in 1½ years 
     http://code.google.com/p/android/issues/detail?id=882 Will see what 
     happens first, they remove support for singleLine or they manage to 
     reproduce the error. :p 
    --> 
</RelativeLayout> 

真誠xZise

+0

這是一個很好的問題。 Offhand,我想不出一種可以在XML佈局中做到這一點的方式,儘管看起來編程方式很容易。我想知道你是否可以使用ViewStub代替ImageView,然後在你的onCreate方法中,根據需要膨脹它們,傳遞TextView的高度作爲ImageView的LayoutParams?從那裏,你可以根據需要調整你的ImageView的scaleType。 – kcoppock 2010-11-10 15:50:38

+0

我不認爲你可以這樣做。爲什麼不在你的案例中設置父項的layout_height相對佈局,並在你的子項中使用fill_parent。 – 2010-11-10 15:58:05

回答

0

你可以嘗試排列圖標的頂部和底部到頂部和底部用戶地址:

<ImageView 
    android:id="@+id/userRowState" 
    android:src="@drawable/icon" 
    android:layout_width="wrap_content" 
    android:layout_alignTop="@+id/userRowName" 
    android:layout_alignBottom="@+id/userRowName"/> 

當文本減少時,這應該會減小大小。它將保持水平位置在原來的位置,但不會隨着水平方向的限制而增長。