我在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循环中。欢迎您的帮助
答案 0 :(得分:1)
我认为你应该从决定你所针对的平台开始,因为Honeycomb中有一个新的动画框架。看看this article。
但是,如果您的目标是3.0之前的版本,那么最简单的方法是在anim.xml中定义动画,并使用android.view.animation.AnimationUtils
将其加载到您的活动中。然后,一旦您在视图上设置了新的布局参数,只需在视图上调用public void startAnimation (Animation animation)
,它就会为您设置动画。 Java中有两行,XML中有几行。
同时查看Animation Resources。