伙计们,我需要你的帮助,我是新的应用程序开发和堆栈溢出。我需要让动画向下拖动一个按钮或其他东西,并在它之后带来一个新的活动。注意:我不能在这里放一张图片,但我可以尝试用字符来明确我的要求。
|______V______| --> button or image
|
| --> dragging down
v
向下拖动(按钮或图像)导致新活动从上到下。任何帮助链接或建议将不胜感激?
伙计们,我需要你的帮助,我是新的应用程序开发和堆栈溢出。我需要让动画向下拖动一个按钮或其他东西,并在它之后带来一个新的活动。注意:我不能在这里放一张图片,但我可以尝试用字符来明确我的要求。
|______V______| --> button or image
|
| --> dragging down
v
向下拖动(按钮或图像)导致新活动从上到下。任何帮助链接或建议将不胜感激?
这样做
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;
public class ActivityLogin extends Activity {
private boolean isUp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((Button) findViewById(R.id.button1))
.setOnClickListener(new OnClickListener() {
public void onClick(final View v) {
final float direction = (isUp) ? -1 : 1;
final float yDelta = getScreenHeight()
- (2 * v.getHeight());
final int layoutTopOrBottomRule = (isUp) ? RelativeLayout.ALIGN_PARENT_TOP
: RelativeLayout.ALIGN_PARENT_BOTTOM;
final Animation animation = new TranslateAnimation(0,
0, 0, yDelta * direction);
animation.setDuration(500);
animation.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
// fix flicking
// Source :
// http://stackoverflow.com/questions/9387711/android-animation-flicker
TranslateAnimation anim = new TranslateAnimation(
0.0f, 0.0f, 0.0f, 0.0f);
anim.setDuration(2);
v.startAnimation(anim);
// // set new params
// LayoutParams params = new LayoutParams(v
// .getLayoutParams());
// params.addRule(RelativeLayout.CENTER_HORIZONTAL);
// params.addRule(layoutTopOrBottomRule);
// v.setLayoutParams(params);
Toast.makeText(getApplicationContext(), "Open New Activity here", 1).show();
}
});
v.startAnimation(animation);
// reverse direction
isUp = !isUp;
}
});
}
private float getScreenHeight() {
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
return (float) displaymetrics.heightPixels;
}
}
和你的 activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Drag Me" />
</RelativeLayout>
现在我在哪里显示了 Toast 消息,你需要在那里显示你的下一个活动。