অ্যান্ড্রয়েড বাম থেকে ডান স্লাইড অ্যানিমেশন


186

আমার তিনটি ক্রিয়াকলাপ রয়েছে যার লঞ্চ মোডগুলি একক উদাহরণ।
ব্যবহার করে onfling(), আমি তাদের বাম এবং ডানদিকে দুলছি।

সমস্যাটি যখন আমি স্লাইডের ডান থেকে বাম দিকে সোয়াইপ করি তখনই ঠিক আছে তবে আমি যখন বাম থেকে ডানদিকে সোয়াইপ করি তখন আমি ডান থেকে বামে সোয়াইপ করার স্থানান্তর পাই।

আমি জানি কেন এটি হচ্ছে কারণ আমি সর্বদা নতুন অভিপ্রায় পাঠাচ্ছি। তবে, এখন আমার বাম থেকে ডানদিকে স্লাইডিংয়ের অ্যানিমেশনটি পরিবর্তন করা দরকার।

আমি জানি যে নামের একটি পদ্ধতি রয়েছে overridingTransitionPending()তবে আমি কীভাবে এক্সএমএলে আমার অ্যানিমেশনটি সংজ্ঞায়িত করতে পারি তা জানি না।


4
আপনি যদি আমার জিজ্ঞাসা করতে আপত্তি না করেন, আপনি অদলবদল না করা পর্যন্ত আপনি কী কী কার্যক্রম ব্যবহার করবেন?
অ্যান্ডি

কিছুটা দেরি হলেও আপনি একটি সহজভাবে হোল্ড.এক্সএমএল ফাইল ব্যবহার করতে পারেন যা সমস্ত
ডেল্টার

উত্তর:


397

এই এক্সএমএলটি ব্যবহার করুন res/anim/

এটি বাম থেকে ডান অ্যানিমেশনের জন্য:

<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>

এটি ডান থেকে বাম অ্যানিমেশনের জন্য:

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
  <translate
     android:fromXDelta="0%" android:toXDelta="100%"
     android:fromYDelta="0%" android:toYDelta="0%"
     android:duration="700" />
</set>

আপনার কোডিংয়ে বাম থেকে ডানে যেমন অভিপ্রায় ব্যবহার করুন:

this.overridePendingTransition(R.anim.animation_enter,
                   R.anim.animation_leave);

আপনার কোডিংয়ে ডান থেকে বামের মতো অভিপ্রায় ব্যবহার করুন

this.overridePendingTransition(R.anim.animation_leave,
                               R.anim.animation_enter);

2
এক্সএমএলে এটি সংজ্ঞায়িত করার পরিবর্তে জাভাতে অ্যানিমেশন আমরা অ্যান্ড্রয়েড.ভিউ.অ্যানিমেশন ব্যবহার করতে পারি? আমি আমার ভিউফ্লিপারের জন্য ইতিমধ্যে অ্যানিমেশন ক্লাস ব্যবহার করেছি এবং আমি ওভাররাইড ট্রান্সিশনপেন্ডিং () এর জন্য এটি পুনরায় ব্যবহার করতে চাই।
ইগোরগানাপলস্কি

1
আমি কী অ্যানিমেশনটিকে একটি চিত্র দিতে পারি? আমি কোনও চিত্র ডিক্রিপ্ট করে এটিকে একটি চিত্রের দৃশ্যে সেট করে দিচ্ছি আমি প্রতিটি ফ্লাইংয়ে এটি পরিবর্তন করতে চাই আমি কী প্রভাবটি দিয়ে চিত্রটি সেট করা সম্ভব?
শ্রীদেব আর

1
আমি যে শখের প্রকল্পে কাজ করছি তাতে এটি চেষ্টা করেছি এবং এটি দুর্দান্ত কাজ করে! এক্সএমএল-ভিত্তিক অ্যানিমেশনের সাথে কাজ করার সময়সীমা, সহজকরণ ইত্যাদির মতো বাহ্যিকভাবে ভেরিয়েবলগুলি সেট করার কোনও উপায় আছে কি?
ড্যানিয়েল সাইদী

7
উপরের কোন ফাইলটি অ্যানিমেশন_লিভ.এক্সএমএল এবং অ্যানিমেশন_এন্টার.এক্সএমএল?
জ্যাস্পার

1
ধন্যবাদ। আমি যদিও একটি সমস্যা লক্ষ্য করেছি; ডান থেকে বাম অ্যানিমেশনের জন্য আপনি এক্সডেল্টা মানগুলি অদলবদল করেছেন। অ্যান্ড্রয়েড হওয়া উচিত: থেকে এক্সডেল্টা = "100%" অ্যান্ড্রয়েড: টুডেল্টা = "0%"
রিকার্ডো

150

আপনি যদি পুরো অ্যাপ্লিকেশনটির জন্য রূপান্তর কাজ করতে চান তবে আপনি এটি তৈরি করতে rootacivityএবং আপনার প্রয়োজনীয় ক্রিয়াকলাপে উত্তরাধিকারী হতে পারেন। রুট ক্রিয়াকলাপে overridePendingTransitionকাঙ্ক্ষিত দিকনির্দেশ সহ কল করুন । এবং onStartকলoverridePendingTransition ক্রিয়াকলাপ আবার চালু করা হলে অন্য দিকের সাথে । এখানে আমি নীচে পূর্ণ চলমান কোড দিচ্ছি Iআমি ভুল হলে আমাকে সংশোধন করুন।

আপনার আনিম ফোল্ডারে এই এক্সএমএল ফাইলটি তৈরি করুন

anim_slide_in_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="600"
        android:fromXDelta="100%"
        android:toXDelta="0%" >
    </translate>
</set>

anim_slide_in_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="600"
        android:fromXDelta="-100%"
        android:toXDelta="0%" >
    </translate>
</set>

anim_slide_out_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="600"
        android:fromXDelta="0%"
        android:toXDelta="-100%" >
    </translate>
</set>

anim_slide_out_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="600"
        android:fromXDelta="0%"
        android:toXDelta="100%" >
    </translate>
</set>

RootActivity

import android.app.Activity;
import android.os.Bundle;

public class RootActivity extends Activity {
    int onStartCount = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        onStartCount = 1;
        if (savedInstanceState == null) // 1st time
        {
            this.overridePendingTransition(R.anim.anim_slide_in_left,
                    R.anim.anim_slide_out_left);
        } else // already created so reverse animation
        { 
            onStartCount = 2;
        }
    }

    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
        if (onStartCount > 1) {
            this.overridePendingTransition(R.anim.anim_slide_in_right,
                    R.anim.anim_slide_out_right);

        } else if (onStartCount == 1) {
            onStartCount++;
        }

    }

}

FirstActivity

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class FirstActivity extends RootActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = (TextView) findViewById(R.id.tvTitle);
        tv.setText("First Activity");
        Button bt = (Button) findViewById(R.id.buttonNext);
        bt.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(FirstActivity.this, SecondActivity.class);
                startActivity(i);

            }
        });
    }

}

SecondActivity

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class SecondActivity extends RootActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = (TextView) findViewById(R.id.tvTitle);
        tv.setText("Second Activity");
        Button bt = (Button) findViewById(R.id.buttonNext);
        bt.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(SecondActivity.this, ThirdActivity.class);
                startActivity(i);

            }
        });

    }

}

ThirdActivity

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class ThirdActivity extends RootActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = (TextView) findViewById(R.id.tvTitle);
        tv.setText("Third Activity");
        Button bt = (Button) findViewById(R.id.buttonNext);
        bt.setText("previous");
        bt.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();

            }
        });
    }

}

এবং অবশেষে প্রকাশ

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.transitiontest"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.transitiontest.FirstActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.transitiontest.SecondActivity"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name="com.example.transitiontest.ThirdActivity"
            android:label="@string/app_name" >
        </activity>
    </application>

</manifest>

আমি জানি এটি একটি সত্যই পুরানো পোস্ট, তবে, আমি আমার জীবনের জন্য ডান থেকে বাম দিকে স্লাইড অ্যানিমেশনটি (লোকেদের ক্রিয়াকলাপটি তৈরি হওয়ার পরে) লোড করার জন্য ইউএনপ্যাভিগেশন পেতে পারি না। প্রতিবার, যাই হোক না কেন, এটি বাম থেকে ডান অ্যানিমেশনটি করে। কারো কোন ধারণা আছে???
রায়ান সি

1
এই সমাধান ভাবেন ক্র্যাশ করতে পারে, আমরা objectAnimator পড়ুন দয়া ব্যবহার করেন stackoverflow.com/questions/17760299/...
Swapnil

এই উত্তরটি গ্রহণযোগ্য হওয়া উচিত। এটা সত্যিই বোধগম্য এবং কাজ করে মহান
Ahmet

69

বাম, ডান, উপরে এবং নীচে থেকে স্লাইড প্রভাব সহ একই প্রয়োগ করে একটি নমুনা কোড তৈরি করে। (যারা এই সমস্ত আনিম এক্সএমএল ফাইল তৈরি করতে চান না তাদের জন্য :))

গিথুবে কোডটি চেক আউট করুন


31

আপনি যদি " ক্রিয়াকলাপ " শুরুতে অ্যানিমেশনটি প্রয়োগ করতে চান তবে । তারপর কোড নীচে লিখুন।

startActivity(intent);
overridePendingTransition(R.anim.opening_anim, R.anim.closing_anim);

আপনি যদি " ডায়লগ " এ অ্যানিমেশনটি প্রয়োগ করতে চান তবে প্রথমে styles.xmlফাইলের নীচে কোড যুক্ত করুন

<style name="my_style”> 
 <item 
  name="@android:windowEnterAnimation">@anim/opening_anim</item> 
 <item 
 name="@android:windowExitAnimation">@anim/closing_anim</item>
</style>

আমি নীচে সংজ্ঞায়িত হিসাবে এই শৈলী ব্যবহার করুন।

final Dialog dialog = new Dialog(activity);
dialog.getWindow().getAttributes().windowAnimations = R.style.my_style;

যদি আপনি " ভিউ " এ অ্যানিমেশনটি প্রয়োগ করতে চান তবে নীচে কোডটি লিখুন

txtMessage = (TextView) findViewById(R.id.txtMessage);
     
// load the animation
Animation animFadein = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.animation); 

// start the animation
txtMessage.startAnimation(animFadein);

নীচে, আমি বেশিরভাগ অ্যানিমেশন .xmlকোড উল্লেখ করেছি ।

প্রদর্শিত - এটি just.xml প্রদর্শিত

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:interpolator="@android:anim/accelerate_interpolator"
        android:duration="1"
           android:fromAlpha="1.0"
           android:toAlpha="1.0"/>
</set>

===========================================

এটিকে আস্তে আস্তে ভিউ.এক্সএমএল হয়ে যায়

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:interpolator="@android:anim/accelerate_interpolator" 
        android:duration="300"
        android:repeatCount="0" />
</set>

==========================================

ফেডআউট - এটিকে আস্তে আস্তে ভিউ.এক্সএমএল থেকে বিবর্ণ করুন

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:interpolator="@android:anim/accelerate_interpolator" 
        android:duration="300"
        android:repeatCount="0" />
</set>

==========================================

push_down_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="-100%p" android:toYDelta="0" android:duration="400"/>
</set>

==========================================

push_down_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="400"/>
</set>

==========================================

push_left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>

==========================================

push_left_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>

==========================================

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="300"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>

==========================================

push_right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="300"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>

==========================================

push_up_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="300"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>

==========================================

push_up_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="0" android:toYDelta="-100%p" android:duration="300"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>

==========================================

rotation.xml

<?xml version="1.0" encoding="utf-8"?>
<rotate
 xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="-90"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="0" android:fillAfter="true">
</rotate>

==========================================

scale_from_corner.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromYScale="0" android:toYScale="1.0"
        android:fromXScale="0" android:toXScale="1.0" 
        android:duration="500" android:pivotX="100%"
        android:pivotY="100%" />
</set>

==========================================

scale_torwards_corner.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromYScale="1.0" android:toYScale="0"
        android:fromXScale="1.0" android:toXScale="0" 
        android:duration="500"/>
</set>

==========================================

shrink_and_rotate_a (প্রস্থান) .xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
    android:fromXScale="1.0" android:toXScale="0.8"
    android:fromYScale="1.0" android:toYScale="0.8"
    android:pivotX="50%p" android:pivotY="50%p"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:duration="100"
/>
<scale
    android:fromXScale="1.0" android:toXScale="0.0"
    android:fromYScale="1.0" android:toYScale="1.0"
    android:pivotX="50%p" android:pivotY="50%p"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:duration="150"
    android:startOffset="100"
/>

==========================================

shrink_and_rotate_b (প্রবেশদ্বার) .xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
    android:fromXScale="0.0" android:toXScale="1.0"
    android:fromYScale="1.0" android:toYScale="1.0"
    android:pivotX="50%p" android:pivotY="50%p"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:duration="150"
    android:startOffset="250"
/>

<scale
    android:fromXScale="0.8" android:toXScale="1.0"
    android:fromYScale="0.8" android:toYScale="1.0"
    android:pivotX="50%p" android:pivotY="50%p"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:duration="100"
    android:startOffset="400"
/>

========================================

blink.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha android:fromAlpha="0.0"
      android:toAlpha="1.0"
      android:interpolator="@android:anim/accelerate_interpolator"
      android:duration="800"
      android:repeatMode="reverse"
      android:repeatCount="infinite"/>
</set>

========================================

ZoomIn.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:fillAfter="true" >
    <scale
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:duration="1000"
       android:fromXScale="1"
       android:fromYScale="1"
       android:pivotX="50%"
       android:pivotY="50%"
       android:toXScale="3"
       android:toYScale="3" >
    </scale>
</set>

========================================

ZoomOut.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:fillAfter="true" >
    <scale
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:duration="1000"
       android:fromXScale="1.0"
       android:fromYScale="1.0"
       android:pivotX="50%"
       android:pivotY="50%"
       android:toXScale="0.5"
       android:toYScale="0.5" >
    </scale>
</set>

========================================

FadeIn.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:fillAfter="true" >
    <alpha
       android:duration="1000"
       android:fromAlpha="0.0"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:toAlpha="1.0" />
</set>

========================================

FadeOut.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:fillAfter="true" >
    <alpha
       android:duration="1000"
       android:fromAlpha="1.0"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:toAlpha="0.0" />
</set>

========================================

Move.xml

<?xml version="1.0" encoding="utf-8"?>
<set
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:interpolator="@android:anim/linear_interpolator"
   android:fillAfter="true">
   <translate
       android:fromXDelta="0%p"
       android:toXDelta="80%p"
       android:duration="1000" />
</set>

========================================

SlideDown.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:fillAfter="true">
    <scale
       android:duration="800"
       android:fromXScale="1.0"
       android:fromYScale="0.0"
       android:interpolator="@android:anim/linear_interpolator"
       android:toXScale="1.0"
       android:toYScale="1.0" />
</set>

========================================

SlideUp.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:fillAfter="true" >
    <scale
       android:duration="800"
       android:fromXScale="1.0"
       android:fromYScale="1.0"
       android:interpolator="@android:anim/linear_interpolator"
       android:toXScale="1.0"
       android:toYScale="0.0" />
</set>

========================================

Bounce.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:fillAfter="true"
   android:interpolator="@android:anim/bounce_interpolator">
    <scale
       android:duration="800"
       android:fromXScale="1.0"
       android:fromYScale="0.0"
       android:toXScale="1.0"
       android:toYScale="1.0" />
</set>

আমার আনন্দ! @ বিশ্রুতমাভানী
প্রিন্স

2
অ্যানিমেশন চমৎকার সংগ্রহ!
সেবাসির

15

আপনি আপনার ডিফল্ট ক্রিয়াকলাপ অ্যানিমেশনটি ওভাররাইট করতে পারেন। আমি যে সমাধানটি ব্যবহার করি তা এখানে:

একটি "কাস্টমঅ্যাক্টিভিটিএনিমেশন" তৈরি করুন এবং এটি "উইন্ডোঅ্যানিমেশনস্টাইল" দ্বারা আপনার বেস থিমে যুক্ত করুন।

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorPrimary</item>
    <item name="android:windowAnimationStyle">@style/CustomActivityAnimation</item>

</style>

<style name="CustomActivityAnimation" parent="@android:style/Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item>
    <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item>
    <item name="android:activityCloseEnterAnimation">@anim/slide_in_left</item>
    <item name="android:activityCloseExitAnimation">@anim/slide_out_right</item>
</style>

রেজ ফোল্ডারের অধীনে আনিম ফোল্ডার তৈরি করুন এবং তারপরে এই চারটি অ্যানিমেশন ফাইল তৈরি করুন:

slide_in_right.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="100%p" android:toXDelta="0"
        android:duration="@android:integer/config_mediumAnimTime"/>
</set>

slide_out_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="-100%p"
        android:duration="@android:integer/config_mediumAnimTime"/>
</set>

slide_in_left.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="-100%p" android:toXDelta="0"
        android:duration="@android:integer/config_mediumAnimTime"/>
</set>

slide_out_right.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%p"
        android:duration="@android:integer/config_mediumAnimTime"/>
</set>

এটি গিথুবে আমার নমুনা প্রকল্প।

সবই ... শুভ কোডিং :)


আপনি কি আপনার অ্যাপ্লিকেশনটিতে স্টাইল যুক্ত করবেন? আমি শুধু আপনার জন্য একটি উদাহরণ প্রকল্প তৈরি। github.com/ShohanAhmed/… এটি যদি কাজ না করে তবে আপনার ডিভাইসের নাম এবং অ্যান্ড্রয়েড সংস্করণ দিন যেখানে এটি কাজ করছে না। ধন্যবাদ
শোহান আহমেদ সিজন

স্যামসং SHV-E300S (এস 4 কোরিয়ান) অ্যান্ড্রয়েড সংস্করণ 5.0.1
হানজালা

সর্বকালের সেরা সমাধান।
আহমাদুল্লাহ সৈকত

14

এছাড়াও, আপনি এটি করতে পারেন:

FirstClass.this.overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);

এবং আপনার কোনও অ্যানিমেশন xML যুক্ত করার দরকার নেই


রূপান্তর ধীর এক ধরণের। কোনও অ্যানিমেশন ফাইল যুক্ত না করে এটিকে দ্রুত করার কোনও উপায়?
মাইক্রো

2

ভিউপ্রপার্টি অ্যানিমেটার ব্যবহার করে এই ধরণের অ্যানিমেশনের জন্য আমি কোনও সমাধান খুঁজে পাচ্ছিলাম না।

এখানে একটি উদাহরণ:

লেআউট:

<FrameLayout
android:id="@+id/child_view_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/child_view"
        android:gravity="center_horizontal"
        android:layout_gravity="center_horizontal"
    />
</FrameLayout>

অ্যানিমেট - ডান থেকে বাম এবং প্রস্থান প্রস্থান:

final childView = findViewById(R.id.child_view);
View containerView = findViewById(R.id.child_view_container);
childView.animate()
  .translationXBy(-containerView.getWidth())
  .setDuration(TRANSLATION_DURATION)
  .setInterpolator(new AccelerateDecelerateInterpolator())
  .setListener(new AnimatorListenerAdapter() {
    @Override
    public void onAnimationEnd(Animator animation) {
        childView.setVisibility(View.GONE);
    }
});

অ্যানিমেট - ডান থেকে বাম প্রবেশ দর্শন:

final View childView = findViewById(R.id.child_view);
View containerView = findViewById(R.id.child_view_container);
childView.setTranslationX(containerView.getWidth());
childView.animate()
    .translationXBy(-containerView.getWidth())
    .setDuration(TRANSLATION_DURATION)
    .setInterpolator(new AccelerateDecelerateInterpolator())
    .setListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationStart(Animator animation) {
            childView.setVisibility(View.VISIBLE);
        }
    });

আমি কি ডান থেকে বামে দেখাতে পারি? কারণ আপনার অ্যানিমেট - ডান থেকে বাম এবং প্রস্থান দৃশ্যটি বামে সামগ্রীটি আড়াল করে। আমার টার্গেটটি এটিকে ডান থেকে বামে দেখাতে হবে
17'30 এ 10

1

আপনার এপিআই স্তরটি যদি 19+ হয় তবে আপনি translationউপরের মতো ব্যবহার করতে পারেন । যদি আপনার এপিআই স্তর 19 থেকে কম হয়, তাহলে আপনি অনুরূপ টিউটোরিয়াল কটাক্ষপাত করা করতে পারেন: http://trickyandroid.com/fragments-translate-animation/


0

ডান থেকে বাম দিকে স্লাইডের জন্য

মাঝামাঝি / anim / in.xml:

<?xml version="1.0" encoding="utf-8"?>
<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>

মাঝামাঝি / anim / out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:shareInterpolator="false">
   <translate
    android:fromXDelta="0%" android:toXDelta="-100%"
    android:fromYDelta="0%" android:toYDelta="0%"
    android:duration="700" />
</set>

ক্রিয়াকলাপ জাভা ফাইল:

Intent intent = new Intent(HomeActivity.this, ActivityCapture.class);
startActivity(intent);
overridePendingTransition(R.anim.in,R.anim.out);

আপনি দীর্ঘতর বা স্বল্প স্লাইড অ্যানিমেশনের জন্য এক্সএমএল ফাইলগুলিতে সময়কাল বার পরিবর্তন করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.