কীভাবে ক্রিয়াকলাপ স্থানান্তরে একটি বিবর্ণ অ্যানিমেশন সম্পাদন করবেন?


89

আমি আমার লোগো ক্রিয়াকলাপ এবং আমার প্রধান ক্রিয়াকলাপের মধ্যে একটি রূপান্তর প্রভাবকে কোডাইফাই করছি, তবে আমার এই সমস্যাটি রয়েছে যে ক্রিয়াকলাপটি শীর্ষে চলে যাওয়ার আগে:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >

    <alpha
        android:duration="2000"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" >
    </alpha>

</set>

কেবলমাত্র অদৃশ্য প্রভাব পেতে আমি এই কোডটি কীভাবে উন্নত করতে পারি?

উত্তর:


237

আপনি নিজের নতুন। XML অ্যানিমেশন ফাইলগুলি একটি নতুন Activityবিবর্ণ করতে এবং বর্তমানকে বিবর্ণ করতে পারেন Activity:

fade_in.xML

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

fade_out.xML

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

এটির মতো কোডে এটি ব্যবহার করুন: (আপনার ভিতরে Activity)

Intent i = new Intent(this, NewlyStartedActivity.class);
startActivity(i);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

উপরের কোডটি বর্তমানে সক্রিয়ভাবে Activityসজ্জিত হবে এবং সদ্য শুরু Activityহওয়াতে মসৃণ পরিবর্তনের ফলে বিবর্ণ হবে ।

আপডেট : @ ড্যান জে উল্লেখ করেছিলেন যে অ্যানড্রয়েড অ্যানিমেশনগুলিতে বিল্ট ব্যবহার করা পারফরম্যান্সের উন্নতি করে , যা আমি কিছু পরীক্ষা করার পরে সত্যই পেয়েছি। যদি আপনি অন্তর্নির্মিত অ্যানিমেশনগুলির সাথে কাজ করতে পছন্দ করেন তবে ব্যবহার করুন:

overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);

রিসোর্স আইডি অ্যাক্সেস করার android.Rপরিবর্তে আমাকে রেফারেন্সিং লক্ষ্য করুন R

আপডেট : এপিআই লেভেল 19-এ চালু হওয়া ট্রানজিশন ক্লাসটি ব্যবহার করে ট্রানজিশনগুলি সম্পাদন করা এখন সাধারণ অভ্যাস ।


65
অ্যান্ড্রয়েড অ্যানিমেশনগুলিতে অন্তর্নির্মিত ব্যবহারটি একটি মসৃণ সংক্রমণের ফলে দেখা যাচ্ছে: overridePendingTransition(android.R.anim.fadein, android.R.anim.fadeout);এই ফাইলগুলি দেখার ফলে আপনার কাস্টম অ্যানিমেশনগুলিকে কীভাবে উন্নত করা যায় সে সম্পর্কেও ইঙ্গিত দেওয়া যেতে পারে (যেমন বিবর্ণ হয়ে যাওয়ার চেয়ে দীর্ঘস্থায়ীভাবে বিবর্ণ করা)।
ড্যান জে

42
এটির অনস্কর রয়েছে: overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);:)
আলভোরোসন্তিস্তেবান

আমাকে কি ওভাররাইডপেন্ডিং ট্রান্সশিশন অনক্রিট ব্যবহার করতে হবে বা প্রতিটি উদ্দেশ্যতে? বা আমি যা চাই তার উপর নির্ভর করে? ধন্যবাদ
রিকার্ডো

19
"ওভাররাইডিং" ছাড়াই একটি বিকল্প রয়েছে:Bundle bundle = ActivityOptionsCompat.makeCustomAnimation(getContext(), android.R.anim.fade_in, android.R.anim.fade_out).toBundle(); startActivity(intent, bundle);
ওলিনিকড

4
উপরোক্ত রূপান্তরটি কেবলমাত্র বিকাশকারী বিকল্পগুলিতে সক্ষম থাকলেই সম্পাদিত হয়, দেখুন stackoverflow.com/a/30422015/2914140
কুলমাইন্ড

22

কেবল ওলেনিকডের মাধ্যমে উত্তর পুনরায় পোস্ট করা কারণ এটি সহজ এবং ঝরঝরে

Bundle bundle = ActivityOptionsCompat.makeCustomAnimation(getContext(),
    android.R.anim.fade_in, android.R.anim.fade_out).toBundle(); 
startActivity(intent, bundle);

যেহেতু ওভাররাইডপেন্ডিং ট্রান্সশিশন কিছু মোবাইলে কাজ করে না এবং এনেসের সমাধান খুব সুন্দর হয় না, এই উত্তরটি সঠিক হওয়া উচিত।
হুগো

19

আপনি নিজের ক্রিয়াকলাপে অ্যানিমেশনটিও যুক্ত করতে পারেন, নীচের মতো ওনক্রিট পদ্ধতিতে ওভাররাইডের অর্থ প্রদানের অর্থ প্রদানের ট্রান্সশন কোনও মোবাইলের সাথে কাজ করছে না, বা এটি ডিভাইস সেটিংসের উপর নির্ভর করে ...

View view = findViewById(android.R.id.content);
Animation mLoadAnimation = AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.fade_in);
mLoadAnimation.setDuration(2000);
view.startAnimation(mLoadAnimation);

4
পূর্ববর্তী বা পিতামাতার ক্রিয়াকলাপের জন্য অ্যানিমেশন কীভাবে পরিচালনা করবেন?
মেহমেদ

9
প্যারেন্ট ক্রিয়াকলাপে ফিরে যাওয়ার জন্য অ্যানিমেশনটি সেট করতে এই কোডটি ব্যবহার করুন:@Override public void onBackPressed() { super.onBackPressed(); overridePendingTransition(R.anim.fade_in, R.anim.fade_out); }
জন ভার্কো

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/colorAccent</item>
    <item name="android:windowAnimationStyle">@style/AppTheme.WindowTransition</item>
</style>

<!-- Setting window animation -->
<style name="AppTheme.WindowTransition">
    <item name="android:windowEnterAnimation">@android:anim/fade_in</item>
    <item name="android:windowExitAnimation">@android:anim/fade_out</item>
</style>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.