Штабелирование изображений с перекрытием - PullRequest
0 голосов
/ 23 марта 2012

Я пытаюсь сложить изображения рядом друг с другом (с перекрытием на 70%).Я использовал frameLayout и дал каждому элементу заполнение по 10. Это работало, но это заполнение убивает меня, когда дело доходит до обработки событий.Есть ли лучший способ перекрытия видов (использовать другой макет и т. Д.)?Я занимаюсь разработкой для Android 2.3

   <RelativeLayout android:layout_height="fill_parent"  
android:layout_width="fill_parent" >

    <FrameLayout     
    android:id="@+id/frameLayoutBottom"      
    android:layout_width="wrap_content"      
    android:layout_height="wrap_content"     
    android:layout_alignParentBottom="true"      
    android:layout_centerHorizontal="true" > 
    <ImageView          
    android:id="@+id/ivBottom1"          
    android:layout_width="wrap_content"          
    android:layout_height="wrap_content"          
    android:src="@drawable/c10" />      
    <ImageView      
    android:id="@+id/ivBottom2"          
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"                        
    android:paddingLeft="10dp"          
    android:src="@drawable/c11" /> 

Кстати, когда я пробую поле вместо отступа, изображения все равно будут наверху друг друга 100%

Ответы [ 2 ]

2 голосов
/ 23 марта 2012

У меня есть этот макет:

Hand of cards

Я делаю это путем переопределения FrameLayout для создания контейнера для рук и ImageView для создания карт. Тогда я могу диктовать, как они размещаются так, как я хочу.

1 голос
/ 23 марта 2012

Создайте пользовательскую ViewGroup, которая выкладывает своих детей в onLayout. Есть довольно много примеров, если вы ищете "custom ViewGroup onLayout". В общем случае переопределение метода onLayout выглядит следующим образом:

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {}

Внутри этого метода вы захотите использовать getChildCount () и getChildAt (index) для получения ссылок на ваши дочерние представления. Получив их, вы можете использовать значения l, t, r и b, чтобы сравнить границы вашей ViewGroup и выяснить, где расположить дочерние элементы.

Как только вы найдете детей и вычислите, где вы их хотите, вы будете использовать child.layout (l, t, r, b), чтобы поместить дочерний вид в новую пользовательскую группу ViewGroup.

Надеюсь, это поможет. если вам действительно нужно взломать это в XML, вы можете попробовать следующее:

<RelativeLayout    
android:layout_width="fill_parent"      
android:layout_height="fill_parent"> 
<ImageView 
android:id="@+id/spacer1"         
android:layout_width="10dp"          
android:layout_height="wrap_content" />         
<ImageView       
android:layout_width="wrap_content"
android:layout_height="wrap_content"         
android:src="@drawable/whatever1" /> 
<ImageView       
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:layout_toRightOf="id/spacer1"        
android:src="@drawable/whatever2" /> 
</RelativeLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...