我的问题是,当我尝试将ImageView放在与TextView相同的布局中时和SetText();将文本写入textview,ImageView不在布局中。是的,我知道我可以把图像放到后台,但是我的图像是由setImageResource设置的,我不能改变它或者项目失效......
所以这是我的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>
非常感谢有人回答这个问题!
答案 0 :(得分: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 :(得分:1)
试试这个
<?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>
答案 2 :(得分:1)
将此行添加到textview中。这会在TextView
android:drawableLeft="@drawable/YOUR_IMAGE"
这是完整的xml:
<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"/>
答案 3 :(得分: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>
另一个选项是使用ImageView
的动态宽度。这样,ImageView
将根据LinearLayout
中的剩余空间调整大小。
答案 4 :(得分:0)
对于响应式用户界面,您必须使用相对布局,它将在所有设备中进行缩放和外观相同,这是您实现此目的的方法。
<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&amp;您的文本将根据设备屏幕的宽度进行缩放,并且屏幕上不会有任何内容。