2012-01-16 5 views
0

У меня есть два разных круглых изображения разных размеров. Мне нужно разместить оба в том же месте, где центральная точка будет одинаковой. Эти два изображения относятся к относительной компоновке. , пожалуйста, помогите ..Два круглых изображения друг над другом

ответ

0

Сложно помочь без вашего макета XML-кода. Сказав это, в тот момент, когда вы видите «один поверх другого», вам нужно рассмотреть FrameLayout.

0

Используйте Framelayout и установите фон для него с изображением, а затем добавьте изображения сверху с настройкой гравитации влево или вправо или в середине.

1

При использовании относительной компоновки единственной возможностью для этого является центрирование обоих изображений в макете, но если вы начнете добавлять больше элементов, таких как текст выше/ниже любого изображения, результат будет не таким, как ожидается.

Так что моя рекомендация - сделать это программно. Вы можете определить View и переопределить метод onDraw(). Затем вы загружаете растровые изображения с помощью двух ImageView (или BitmapFactory). Затем вы нарисуете его на холсте в нужном месте. Чтобы узнать центр каждого изображения, вы можете использовать Rect class, который вы получаете из View method getDrawingRect после применения свойств макета (так что рассчитывается размер) или вручную (создайте Rect с размерами загруженного растрового изображения, если вы использование BitmapFactory)

Другие альтернативы используют LayerDrawable и определяют положение изображения так, чтобы они были центрированы (вам нужно знать размеры изображения перед рукой).

0

Вместо создания нового sublayout, вы можете потенциально имеют 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 предотвратит растяжение или смещение изображения.

// Редактировать: взлеты, я хотел сказать center ... исправлено.