我正在尝试编写我的第一个Android应用程序之一。我正在尝试将图片放在图片下方 ,但图片占据了屏幕的大部分 ,其中一个textview
s应该位于下方它没有显示。我使用的是RelativeLayout
。
这是我的代码段。
<RelativeLayout
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.jsk.myapp.MainActivity">
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:text="My App"
android:layout_centerHorizontal="true"
android:textSize="30sp"
android:layout_alignParentTop="true"
android:layout_height="wrap_content" />
<ImageView
android:scaleType="centerCrop"
android:id="@+id/img"
android:layout_below="@id/t1"
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@drawable/i1"
/>
<TextView
android:id="@+id/t2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/img"
android:textSize="24sp"
android:text="Description"/>
</RelativeLayout>
我也尝试更改imageview
的缩放类型,但它不起作用。仅当我 明确指定图像的宽度和高度参数 时,文本才会显示在图像下方。
我可以在此代码中进行哪些更改以获得所需的输出?
答案 0 :(得分:1)
如果您添加了想要实现的内容的粗略图表,您的问题可以得到更好的回答。根据我的理解,通过查看您的代码,您似乎尝试在顶部和底部(每个一个)添加2 TextView
,然后将ImageView
夹在中间。< / p>
首先,添加2 TextView
&#39}。将其设置为android:layout_alignParentTop = true
和android:layout_alignParentBottom = true
。然后添加ImageView
。在ImageView
中,您可以设置android:layout_height = "wrap_content"
,然后设置android:layout_below=<id of the top text view>
以及 android:layout_above = <id of the bottom text view>
。
这样的事情:
<RelativeLayout
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.jsk.myapp.MainActivity">
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:text="My App"
android:layout_centerHorizontal="true"
android:textSize="30sp"
android:layout_alignParentTop="true"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/t2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:textSize="24sp"
android:text="Description"/>`
<ImageView
android:scaleType="centerCrop"
android:id="@+id/img"
android:layout_below="@id/t1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/i1"
android:layout_above="@id/t2"
/>
</RelativeLayout>
答案 1 :(得分:0)
如果您使用Map<String, List<Settlement>> map = list.stream()
.collect(Collectors.groupingBy(Settlement::getSmartNo));
System.out.println(map.getValues());
表示wrap_content
的身高,如果ImageView
的实际图片足够大,则肯定会占用整个空间。
在这种情况下,您必须明确提及ImageView
的确切高度,以便显示以下文字。
要解决此问题,您要做的是更改图像本身的实际高度。如果你这样做,图像将完全适合自己,但需要较少的高度,然后文本应该出现。
所以你有两个选择, 1)在您的布局中修复图像高度,或者 2)修复实际图像高度,使其更适合您的用例
我希望这能回答你的问题。
答案 2 :(得分:0)
您需要根据屏幕尺寸指定 ImageView
的尺寸
我的compileSdkVersion
是24,所以我在我的应用中使用compile 'com.android.support:percent:24.0.0'
:gradle依赖项
示例:
<android.support.percent.PercentRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:text="My App"
android:layout_centerHorizontal="true"
android:textSize="30sp"
android:layout_alignParentTop="true"
android:layout_height="wrap_content" />
<ImageView
android:scaleType="centerCrop"
android:id="@+id/img"
android:layout_below="@id/t1"
android:layout_width="match_parent"
app:layout_heightPercent="50%" <---------- here its taking 50% of screen height
android:src="@drawable/myImageName"
/>
<TextView
android:id="@+id/t2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/img"
android:textSize="24sp"
android:text="Description"/>
</android.support.percent.PercentRelativeLayout>
如果您使用LinearLayout
,请转到layout_weight属性
答案 3 :(得分:0)
使t2 alignParentBottom为true 和 让img查看layout_above t2
<RelativeLayout
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.jsk.myapp.MainActivity">
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:text="My App"
android:layout_centerHorizontal="true"
android:textSize="30sp"
android:layout_alignParentTop="true"
android:layout_height="wrap_content" />
<ImageView
android:scaleType="centerCrop"
android:id="@+id/img"
android:layout_below="@id/t1"
android:layout_above="@+id/t2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/i1"
/>
<TextView
android:id="@id/t2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:textSize="24sp"
android:text="Description"/>
</RelativeLayout>