2016-05-28 17 views
1

私の問題は、ImageViewをTextViewと同じレイアウトに入れようとすると、SetText(); textviewにテキストを書き込むと、ImageViewはレイアウト外に出ます。うん、だからここに私は、背景に画像を入れることができます知っているが、私のイメージはsetImageResourceによって設定されていると私はそれを変更することはできませんまたはプロジェクトがダウン...ImageViewをTextViewの近くに置く

私のXMLです:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="onhar.personalhealth.Main" 
    android:baselineAligned="false" 
    android:weightSum="1" 
    android:orientation="horizontal"> 

    <TextView 
     android:layout_width="300dp" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:layout_marginBottom="100dp" 
     android:id="@+id/tip" 
     android:text="" 
     android:layout_gravity="bottom" /> 

    <ImageView 
     android:layout_width="260dp" 
     android:layout_height="260dp" 
     android:layout_marginLeft="30dp" 
     android:layout_marginTop="20dp" 
     android:id="@+id/imageView2" /> 

</LinearLayout> 

これに答えた人のためにありがとう!

+1

なぜあなたはwrap_contentとしようとすることをtextView.Changeするハードコードさ幅を与えています。 –

答えて

1

使用layout_weight属性:

 <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.5" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:layout_marginBottom="100dp" 
     android:id="@+id/tip" 
     android:text="" 
     android:layout_gravity="bottom" /> 


    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.5" 
     android:layout_marginLeft="30dp" 
     android:layout_marginTop="20dp" 
     android:id="@+id/imageView2" /> 
1

使用android:layout_weight

この

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="onhar.personalhealth.Main" 
    android:baselineAligned="false" 
    android:weightSum="1" 
    android:orientation="horizontal"> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:layout_marginBottom="100dp" 
     android:id="@+id/tip" 
     android:text="" 
     android:layout_gravity="bottom" /> 

    <ImageView 
     android:layout_width="260dp" 
     android:layout_height="260dp" 
     android:layout_marginLeft="30dp" 
     android:layout_marginTop="20dp" 
     android:id="@+id/imageView2" /> 

</LinearLayout> 
0

を試してみてくださいあなたが両方のビューのために一定の幅を使用しているようです。したがって、FrameLayoutを使用すると、それらを互いに近づけることができます。このようにしてTextViewがオーバーフローすると、ImageViewの下に移動します。

<FrameLayout 
    android:layout_width="560dp" 
    android:layout_height="..."> 

    <TextView 
     android:layout_width="260dp" 
     android:layout_height="..." 
     android:layout_gravity="left"/> 

    <ImageView 
     android:layout_width="300dp" 
     android:layout_height="..." 
     android:layout_gravity="right"/> 

</FrameLayout> 

もう1つのオプションは、ImageViewの動的幅を使用しています。このようにしてImageViewは、その残りのスペースに基づいてサイズが変更されます。LinearLayout

1

この行をテキストビューに追加してください。どのようにできた

<TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:drawableLeft="@drawable/YOUR_IMAGE" 
     android:gravity="center_vertical" 
     android:textStyle="bold" 
     android:textSize="24dip" 
     android:maxLines="1" 
     android:ellipsize="end"/> 
0

応答UIについてあなたは相対的なレイアウトを使用する必要があり、それはすべてのデバイスでも同じスケールとなります、これは次のとおりです。それは完全なXMLであるここであなたのTextViewandroid:drawableLeft="@drawable/YOUR_IMAGE"

の画像左側が追加されますこれを達成する。

<TextView 
    android:id="@+id/tip" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:layout_toLeftOf="@+id/imageView2" 
    android:text="some \n really \n realllllyyyyy \n \n long \n text a \n who \n just \n do not \n\n\n\ fit " 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<ImageView 
    android:id="@+id/imageView2" 
    android:layout_width="260dp" 
    android:layout_height="260dp" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true" 
    android:src="@drawable/ic_launcher" /> 

結果にかかわらず、あなたのイメージは、常にサイズ260dp右側にするつもりだろうテキストの長さの

&テキストはの幅に応じてスケールしますデバイスの画面に何も表示されません。

enter image description here

関連する問題