我有两个不同尺寸的圆形图像。我必须将它们放在中心点相同的相同位置。这两个图像视图是相对布局的。 请帮忙..
答案 0 :(得分:1)
使用相对布局时,唯一的选择是将两个图像置于布局中心,但如果您开始添加更多元素,例如任何图像上方/下方的某些文本,结果将不会如预期。
所以我的建议是以编程方式进行。您可以定义视图并覆盖onDraw()方法。然后,您将通过两个ImageView(或BitmapFactory)加载位图。然后将其绘制到所需位置的画布上。要找出每个图像的中心,您可以使用在应用布局属性后从Rect class获得的View method getDrawingRect(以便计算大小),或者手动创建一个Rect如果使用BitmapFactory,则加载Bitmap的de维度
其他替代方法是使用LayerDrawable并定义图像位置,使它们居中(您需要事先了解图像尺寸)。
答案 1 :(得分:0)
没有布局XML代码很难提供帮助。话虽如此,当你看到“一个在另一个之上”时,你需要考虑FrameLayout
。
答案 2 :(得分:0)
使用Framelayout,并为图像设置相同的背景,然后在顶部添加图像,将布局重力设置为左侧或右侧或中间。
答案 3 :(得分:0)
除了创建新的子布局外,您可以让ImageViews在所有方面都对齐,并将scaleType
属性设置为类似center
的内容:
<ImageView
android:id="@+id/circle_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/..."
android:scaleType="center"/>
<ImageView
android:id="@+id/circle_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/..."
android:layout_alignTop="@+id/circle_a"
android:layout_alignBottom="@+id/circle_a"
android:layout_alignLeft="@+id/circle_a"
android:layout_alignRight="@+id/circle_a"
android:scaleType="center" />
这会使circle_b
ImageView实际上与circle_a
尺寸相同,但设置适当的scaleType会阻止图像拉伸或错位。
//编辑:ups,我的意思是center
...纠正。