在onClick事件之后移动ImageButton

时间:2011-07-05 19:56:04

标签: android move imagebutton

我在RelativeLayaut中有一个imageButton。 我的imageButton是300x350px,位于屏幕外(顶部)-300px onClick按钮向下300px并再次单击时返回初始位置。效果就像一个弹出窗口。

我可以获得这个工作代码。

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/pag1" android:id="@+id/relativeLayout1"
android:drawingCacheQuality="high" android:layout_width="1024px"
android:layout_height="600px">
<ImageButton android:id="@+id/imageButton8" 
android:layout_width="300px" 
android:layout_height="350px" 
android:layout_marginLeft="720px" 
android:background="@drawable/popup" 
android:layout_marginTop="-300px">
</ImageButton>
</RelativeLayout>

CODE

import android.widget.RelativeLayout.LayoutParams;
...

//activity declarations
protected static final int WIDTH = 300;
protected static final int HEIGHT = 350;
int count=0;
...

///click
    final ImageButton pop=(ImageButton) findViewById (R.id.imageButton8);
    pop.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {
            count++;

            if (count==1){  
                LayoutParams lp = new LayoutParams(WIDTH,HEIGHT);
                lp.setMargins(720, -20, 4, 0);
                pop.setLayoutParams(lp);
            }
            else{
                LayoutParams lp = new LayoutParams(WIDTH,HEIGHT);
                lp.setMargins(720, -300, 4, 0);
                pop.setLayoutParams(lp);
                count=0;
            }
        }   
    });

现在我不会为最终位置添加平滑过渡。我认为在使用睡眠功能的FOR循环中。欢迎您的帮助

1 个答案:

答案 0 :(得分:1)

我认为你应该从决定你所针对的平台开始,因为Honeycomb中有一个新的动画框架。看看this article

但是,如果您的目标是3.0之前的版本,那么最简单的方法是在anim.xml中定义动画,并使用android.view.animation.AnimationUtils将其加载到您的活动中。然后,一旦您在视图上设置了新的布局参数,只需在视图上调用public void startAnimation (Animation animation),它就会为您设置动画。 Java中有两行,XML中有几行。

同时查看Animation Resources