两个圆形图像在彼此的顶部

时间:2012-01-16 07:04:34

标签: android

我有两个不同尺寸的圆形图像。我必须将它们放在中心点相同的相同位置。这两个图像视图是相对布局的。 请帮忙..

4 个答案:

答案 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 ...纠正。