簡體   English   中英

如何使用滑塊動畫從左到右打開活動

[英]how to open activity With Slider Animation left to right

我想從左向右滑動打開活動...在按鈕上單擊..我創建動畫xml

使用此功能進行意圖類似的滑動動畫

signupbtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
            Intent s=new Intent(getApplicationContext(),SignUpActivity.class);


    startActivity(s);
        ((Activity) getApplicationContext()).overridePendingTransition(R.anim.slidleft_to_right,R.anim.slideright_to_left);

                }
            });

但是我的應用程序崩潰了,並在Logcate中給出了錯誤

09-05 14:31:39.761: E/AndroidRuntime(15501): java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity
09-05 14:31:39.761: E/AndroidRuntime(15501):    at com.example.bounced.MainActivity$2.onClick(MainActivity.java:41)
09-05 14:31:39.761: E/AndroidRuntime(15501):    at android.view.View.performClick(View.java:4084)
09-05 14:31:39.761: E/AndroidRuntime(15501):    at android.view.View$PerformClick.run(View.java:16987)
09-05 14:31:39.761: E/AndroidRuntime(15501):    at android.os.Handler.handleCallback(Handler.java:615)
09-05 14:31:39.761: E/AndroidRuntime(15501):    at android.os.Handler.dispatchMessage(Handler.java:92)

您不能將ApplicationContext(大多數情況下是Application類)強制轉換為Activity。

只需刪除該部分並留下:

startActivity(s);
overridePendingTransition(R.anim.slidleft_to_right,R.anim.slideright_to_left);

只需將代碼更改為:

signupbtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
            Intent s=new Intent(getApplicationContext(),SignUpActivity.class);


            startActivity(s);
         overridePendingTransition(R.anim.slidleft_to_right,R.anim.slideright_to_left);

                }
            });

更新:

對於后壓式:

@Override
public void onBackPressed() {
    super.onBackPressed();
    finish();
    overridePendingTransition(R.anim.slideinfromleft, R.anim.slideouttoright);
}

您需要res / anim.xml從左到右的支持動畫

   <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:shareInterpolator="false">

        <translate android:fromXDelta="-100%" android:toXDelta="0%"
         android:fromYDelta="0%" android:toYDelta="0%"
         android:duration="700"/>

   </set>

.class文件

  this.overridePendingTransition(R.anim.animation_enter, R.anim.animation_leave);
        (OR)
  this.overridePendingTransition(R.anim.slidleft_to_right,R.anim.slideright_to_left);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM