Android 更改活动的宽度';基于MotionEvent的布局

Android 更改活动的宽度';基于MotionEvent的布局,android,android-layout,Android,Android Layout,我试图做的是覆盖dispatchTouchEvent(MotionEvent ev)方法,获取动作,计算移动,然后根据移动显示底部 以下是我的基本想法: @Override public boolean dispatchTouchEvent(MotionEvent ev) { int action = ev.getActionMasked(); switch (action) { case MotionEvent.ACTION_UP: br

我试图做的是覆盖dispatchTouchEvent(MotionEvent ev)方法,获取动作,计算移动,然后根据移动显示底部

以下是我的基本想法:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    int action = ev.getActionMasked();
    switch (action) {
        case MotionEvent.ACTION_UP:
            break;
        case MotionEvent.ACTION_DOWN:
            mDownX = ev.getRawX();
            mDownY = ev.getRawY();
            break;
        case MotionEvent.ACTION_MOVE:
            float deltaY = ev.getRawY() - mDownY;
            Log.d(TAG, "delta y: " + deltaY);
            if (deltaY < -50f) {
                // show bottom part
            }
            if (deltaY > 50f) {
                // close bottom part
            }
            break;
        default:
            break;
    }
    return false;
}
@覆盖
公共布尔dispatchTouchEvent(MotionEvent ev){
int action=ev.getActionMasked();
开关(动作){
case MotionEvent.ACTION\u UP:
打破
case MotionEvent.ACTION\u DOWN:
mDownX=ev.getRawX();
mDownY=ev.getRawY();
打破
case MotionEvent.ACTION\u移动:
float deltaY=ev.getRawY()-mDownY;
Log.d(标签“delta y:+deltaY”);
如果(德尔泰<-50f){
//显示底部
}
如果(三角洲>50f){
//封闭底部
}
打破
违约:
打破
}
返回false;
}
我的问题是:我应该使用什么来更改此活动的宽度并显示底部


提前感谢:-)

好的,所以我喜欢布局黑客

对于本例,我将有一个顶部部分和一个底部部分,这是您希望在运动事件中公开的部分

在您的滑动功能中,将底部块的可见性设置为visible,
animateLayoutChanges
将使其看起来像是在向上滑动

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0"
    android:layout_weight="1"
    android:orientation="vertical"
    android:animateLayoutChanges="true" >
    <LinearLayout
        android:id="@+id/topBlock"
        android:layout_width="match_parent"
        android:layout_height="0"
        android:layout_weight="1" >
    </LinearLayout>
    <LinearLayout
        android:id="@+id/bottomBlock"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:visibility="gone" >
    </LinearLayout>
</LinearLayout


到底是什么???顺便说一下,您不能更改活动的宽度。@Merlevede活动的底部。假设您先设置了一些视图,然后您想根据运动隐藏/显示它,即使我不明白。要显示/隐藏视图,只需更改其可见性即可。@Merlevede right。但是如果需要一些动画呢?根据动作,慢慢地显示/关闭视图?好吧,如果你在问题中提到“动画”这个词。。。。