在android中设置线性布局的动画

时间:2013-12-30 01:51:17

标签: android android-linearlayout android-animation

我是android的新手并尝试在原生android中创建一个应用程序。

我有一个顶部条,它是整个屏幕的10%高度和全宽。最初我想在应用程序启动时显示栏。当用户向下拖动应用程序时,需要将“顶栏”设置为-10%,以便用户无法查看。此外,当用户向上拖动屏幕时,需要将“顶栏”设置为0,即屏幕的开头(正常位置)。

所以我有这样的布局

<relativelayout>
<linearLayout>
// Top bar content here 
<linearLayout>


<linearLayout>

// With list items, etc

</linearLayout>


</relativelayout>

我被困在动画部分。如何获取事件并进行动画制作。

请给我一个提示。

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以创建一个onTouch()方法,其中View是整个屏幕。根据触摸动作指定顶栏要执行的操作。以下是一些代码:

public boolean onTouch(View v, MotionEvent evt) {
    switch(evt.getAction()){
        case MotionEvent.ACTION_DOWN:
            // your code that makes it disappear
            return true;
        case MotionEvent.ACTION_UP:
            // your code that makes it reappear
            return true;
    }
    return false;
}

在xml中,将ids添加到布局中。

<LinearLayout 
 android:id="my_layout"
 android:layout_height="fill_parent"
 android:layout_width="fill_parent">
   <TextView
    android:id="topbar"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:layout_weight="1">
   <ListView
    android:id="list"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:layout_weight="9">
</LinearLayout>

您可以在onTouch()方法中调用ID,将布局权重或顶部条的百分比从1更改为0,反之亦然。

查看the first answer中的算法,以确定触摸事件是向上还是向下滚动。