2016-07-04 8 views
1

ImageをFrameLayoutのTextViewの背後に置いておきたい。 TextLayoutの高さを内部で調整し、画像サイズの影響を受けないようにするには、FrameLayoutが必要です。画像は元のサイズのテキストの後ろにFrameLayoutでトリミングする必要があります。wrap_contentの高さを持つFrameLayoutのImageViewをトリミングする

これは私が試みたものです。

<FrameLayout 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_weight="1"> 
<ImageView 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:scaleType="centerCrop" 
android:layout_gravity="right|center_vertical" 
android:gravity="center" 
android:alpha="0.1" 
android:id="@+id/img_logo"/> 
<TextView 
android:textAppearance="?android:attr/textAppearanceMedium" 
android:textAllCaps="true" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_marginLeft="10dp" 
android:layout_marginRight="10dp" 
android:layout_marginTop="10dp" 
android:layout_marginBottom="10dp" 
android:gravity="left|center_vertical" 
android:id="@+id/text_long" /> 
</FrameLayout> 

FrameLayoutの高さが画像サイズの影響を受けることを除いて、ほとんど私が欲しいものです。テキストでのみ変更する必要があります。

+0

これは解決するのは難しい問題です!私の最初の反応は、ImageViewの高さがwrap_contentである間にFrameaLayoutの高さを固定し、TextViewの高さに合わせて動的にFrameLayoutのサイズを変更することです。このソリューションはもっとエレガントなアプローチのようです(コードはありませんが、私はそれを見たい場合は回答フォームで打つことができます):@stackoverflow.com/a/21581103/6526330 –

+0

@ Dr.Nitpick私は試しましたそれは正しく動作していませんでした。あなたがそれを働かせることができれば、私はあなたの答えを喜んで受け入れます。 –

+0

確かに、今夜それを試してみて、あなたに知らせてください –

答えて

2

実際、私はあなたがレイアウトを上書きしたり、Javaコードを書くことなくこれを行うことができると思います。代わりにRelativeLayoutにすべてをラップすることができます。FrameLayoutの後にTextViewを移動し、FrameLayoutの上端と下端をtextViewに合わせて設定します。私はちょっと混乱していると認めます。カスタムビューを作成するか、含まれている別のxmlファイルに入れておくことをお勧めします。

編集:実際には、FrameLayoutはこれ以上必要なく、ImageViewでandroid:layout_alignTopとandroid:layout_alignBottom属性を代わりに設定することができます。ここにその様子があります:

<RelativeLayout 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1"> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_alignTop="@+id/text_long" 
     android:layout_alignBottom="@id/text_long" 
     android:scaleType="centerCrop" 
     android:layout_gravity="right|center_vertical" 
     android:gravity="center" 
     android:alpha="0.1" 
     android:id="@+id/img_logo"/> 
    <TextView 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textAllCaps="true" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginTop="10dp" 
     android:layout_marginBottom="10dp" 
     android:gravity="left|center_vertical" 
     android:id="@id/text_long" /> 
</RelativeLayout> 
関連する問題