我创建了一个带有Button,TextView和ImageView(带有问号)的简单布局。
<Button
android:background="#f00"
android:textSize="25dp"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Button"
android:id="@+id/button" />
<TextView
android:id="@+id/textViewmas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button"
android:layout_alignLeft="@+id/button"
android:layout_alignStart="@+id/button"
android:text="title "
android:textSize="18dp" />
<ImageView
android:id="@+id/questionmark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/textViewmas"
android:layout_alignTop="@+id/textViewmas"
android:layout_alignRight="@+id/button"
android:layout_alignEnd="@+id/button"
app:srcCompat="@drawable/questionmark"/>
The question mark should be a bit more right
我希望图像的右边缘(问号)在按钮的右边缘对齐。 另外顶部和底部应该在标题的textView(相同高度)的顶部和底部对齐。
为什么图像在右边缘没有对齐,但是多了一点? 我注意到,如果我增加标题文本大小(例如30dp),问题就会消失,但我需要一个小的文本化。
------编辑:图像是否有最小尺寸,根据该尺寸,这些陈述效果不佳?
答案 0 :(得分:1)
将android:scaleType="fitEnd"
添加到您的ImageView
<Button
android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="200dp"
android:textSize="25dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="#f00"
android:text="Button"/>
<TextView
android:id="@+id/textViewmas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button"
android:layout_alignLeft="@+id/button"
android:text="title "
android:textSize="18dp" />
<ImageView
android:id="@+id/questionmark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/textViewmas"
android:layout_alignTop="@+id/textViewmas"
android:layout_alignRight="@+id/button"
android:layout_alignEnd="@+id/button"
android:scaleType="fitEnd"
app:srcCompat="@mipmap/ic_launcher"/>
<强>解释强>
这是ImageView
在没有android:layout_alignTop="@+id/textViewmas"
属性
当您将layout_alignTop
属性添加到ImageView
时,会将其缩小到TextView
的高度,并缩小其所包含的图像。默认情况下,scaleType
的{{1}}属性似乎为ImageView
;缩小图像并将其与图像视图的中心对齐,从而在左右两侧添加一些空间。
解决方案是使用centerInside
将缩小的图像移动到图像视图的末尾
输出
答案 1 :(得分:0)
您可以使用:
android:layout_alignRight="@+id/button"
或:
android:layout_alignEnd="@+id/button"
然后你可以从左边添加一些边距。