做這樣
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>
現在在哪兒,我已經向你需要在那裏顯示您的下一個活動吐司消息。
我想你需要這個https://github.com/chrisbanes/Android-PullToRefresh –
是的,這是幫助完整,但實際上我的問題是有點不同我想從上到下帶來新的活動。其關於清爽listView不活動:( –
我沒有從頂部到底部? –