2013-10-27 40 views
0

夥計們我需要你的幫助我是新的應用程序開發和堆棧溢出。我需要讓動畫向下拖動一個按鈕或一些東西,並在它之後帶來一個新的活動。 注意:我不能在這裏放置圖像,但我可以嘗試使用chars清除我的需求。滑動到下一個活動動畫樣式幫助:: android

|______V______| --> button or image 

     | 
     | --> dragging down 
     v 

在拖拽(按鈕或圖像)結果後,新的活動自上而下。 任何幫助鏈接或建議將不勝感激?

+0

我想你需要這個https://github.com/chrisbanes/Android-PullToRefresh –

+0

是的,這是幫助完整,但實際上我的問題是有點不同我想從上到下帶來新的活動。其關於清爽listView不活動:( –

+0

我沒有從頂部到底部? –

回答

0

做這樣

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> 

現在在哪兒,我已經向你需要在那裏顯示您的下一個活動吐司消息。

+0

這就是偉大:)謝謝讓我試試這個,如果我有問題可能是我生病需要你的幫助:P –