我正在创建一个日历,并将根据当前季节制作动画。 即如果是冬天,雪花会从屏幕顶部掉下来。
目前我有日历布局,当我在(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>
这里是eclipse中日历的截图:
答案 0 :(得分:1)
我正在将雪花添加到主布局中,但出于某种原因,它们会转到我的gridView的底部。
视图层次结构的根是LinearLayout
,它按水平或垂直顺序排列所有子视图...它们都没有重叠。如果您在Java代码中向根LinearLayout
添加另一个视图,它将在最后一个当前子项(将是您的GridView
)之后添加并布局。
如果要将动画季节图像添加为其他视图,则可能需要修改应用程序以在根目录中添加FrameLayout
,以便您可以添加视图并将它们简单地叠加在同一空间中(它们除非设置重力值,否则将固定在左上角。这不会取代你现有的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
,他们应该按照您的预期进行操作。