2013-06-02 4 views
0

Я создаю календарь и буду иметь анимацию, основанную на текущем сезоне. i.e если зима, снежинки будут падать с верхней части экрана.рисунок изображения (0,0) на экране рисуется в левом нижнем углу

В настоящее время у меня есть макет календаря на месте, и когда я рисую свои изображения в (0,0), я ожидаю, что они перейдут в левую верхнюю часть экрана ... Я добавляю снежинки к основному макету, но по какой-то причине они идут на дно моего gridView. Я могу только предположить, что одна из моих макетов занимает пространство, но я не уверен .. Вот мой календарь расположение:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/calendar_main_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/bg" 
    android:gravity="center_horizontal" 
    android:orientation="vertical" > 

    <Button android:text="Selected :" 
     android:id="@+id/main_header_image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/calendar_top_header" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" > 

    <ImageView 
     android:id="@+id/calendar_left_arrow" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/cal_left_arrow_off" /> 

    <Button android:text="" 
     android:id="@+id/selected_date" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/calendar_centralheader" 
     /> 

    <ImageView 
     android:id="@+id/calendar_right_arrow" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/cal_right_arrow_off" /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:src="@drawable/blue_bg_with_text" /> 

    </LinearLayout> 

      <GridView 
     android:id="@+id/calendar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:numColumns="7" > 

    </GridView> 



</LinearLayout> 

Вот скриншот того, что календарь выглядит в затмении: enter image description here

ответ

1

Я добавляю снежинки к основному расположению, но по какой-то причине они идут на дно моего gridView.

Корень иерархии вида является LinearLayout, который раскладывает все его точки зрения ребенка, чтобы по горизонтали или по вертикали ... ни один из них не пересекаются. Если вы добавите еще один вид в свой корень LinearLayout в Java-коде, он будет добавлен и выложен после последнего текущего ребенка (который будет вашим GridView).

Если вы добавляете ваши анимированные изображения сезона в виде дополнительных видов, вы, вероятно, захотите изменить свое приложение, чтобы иметь нужный корень, чтобы вы могли добавлять виды и просто накладывать их на одно и то же пространство (они будут привязываться к вверху слева, если вы не установите значение силы тяжести). Это не заменит существующую LinearLayout, она будет включать в себя их обоих, т.е.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/calendar_main_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
    <!-- Your entire existing layout now inside of here --> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/bg" 
     android:gravity="center_horizontal" 
     android:orientation="vertical" > 

     <!-- All the other existing stuff... --> 

    </LinearLayout> 
</FrameLayout> 

Теперь вы можете добавить дополнительные взгляды на FrameLayout и они должны делать то, что вы ожидаете.

Смежные вопросы