آموزش ساخت background متحرک در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش ساخت background متحرک در برنامه نویسی اندروید می پردازیم دقیقا بخواهید بدونید چیه ما برای پس زمینه layout خودمان یک سری انیمیشن ایجاد می کنیم که تغییر کنید دقیق تر بخواهیم بگیم یه چیزی شبیه به background صفحه لوگین اینستاگرام می شود در ادامه با ما همراه باشید.
ما سه تا فایل xml داریم که به نام های gradient_1.xml , gradient_2.xml و gradient_3.xml این ها کار اصلی برنامه ما می شود و این اجزا در پوشه drawable باید قرار گیرند
پس فایل اولی یا gradient_1.xml همانند زیر می شود.
1 2 3 4 5 6 7 | <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="225" android:endColor="#044fab" android:startColor="#21d6d3" /> </shape> |
فایل دوم ما یا gradient_2.xml
1 2 3 4 5 6 7 | <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="45" android:endColor="#933c94" android:startColor="#517f95" /> </shape> |
فایل سوم ما یا gradient_3.xml
1 2 3 4 5 6 7 | <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="135" android:endColor="#43b4ef" android:startColor="#d40845" /> </shape> |
کد های بالا یک رینچ رنگ برای ما درست می کنن حالا باید این رینج رنگ ها را با هم ترکیب کنیم برای اینکار یک فایل به نام android_gradient_list.xml در پوشه drawable ایجاد کنید و کد زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 | <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/gradient_1" android:duration="4000" /> <item android:drawable="@drawable/gradient_2" android:duration="4000" /> <item android:drawable="@drawable/gradient_3" android:duration="4000" /> </animation-list> |
تا اینجا انیمیشن ما ایجاد شده است حالا باید از آن استفاده کنیم حالا هر شئی را که می خواهید این رنگ برای آن تنظیم شود فقط کافی است ویژگی background آن را برابر با android_gradient_list.xml قرار دهید مثل زیر
1 | android:background="@drawable/android_gradient_list" |
ما یک نمونه دیگر برای شما قرار میدهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/root_layout" android:background="@drawable/android_gradient_list" tools:context="com.viralandroid.animatedgradientandroid.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="Programchi.ir" android:textColor="#ffffff" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout> |
دوستان در بالا از ConstraintLayout آشنایی ندارید می تونید به پست آموزشی آن مراجعه کنید کافی است همین واژه “ConstraintLayout” را در سایت جستجو کنید.
برای تمامی layout ها می توانید از این استفاده کنید برای RelativeLayout و LinerLayout نیز باید ویژگی background را تنظیم کنید.
حالا بخش کد برنامه هم مثل زیر می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package ir.programchi; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.support.constraint.ConstraintLayout; import android.support.v7.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ConstraintLayout constraintLayout = (ConstraintLayout) findViewById(R.id.root_layout); AnimationDrawable animationDrawable = (AnimationDrawable) constraintLayout.getBackground(); animationDrawable.setEnterFadeDuration(2000); animationDrawable.setExitFadeDuration(4000); animationDrawable.start(); } } |
دوستان برای layout های دیگر هم همین به همین شکل است با کمی تغییر.
این آموزش هم به پایان رسید.
موفق و موید باشید.
بسیار عالی بود.
عالی بود فقط ایا راه کاری برای جلو گیری از سفید شدن پیش زمینه هنگام تغییر رنگ ندارید؟؟؟
سلام و درود
باید رینج رنگ رو تغییر بدید.
با سلام جناب برای اینکه پس زمینه طبق رنگ تصویر ست بشه چه تابعی باید استفاده کرد ؟
برای انتقال بین دو اکتیویتی اگر بخام ک با اومدن اکتیویتی دوم دوباره از اول طیف رنگ شروع نشه و طیف رنگ همون اکتیویتی اول ادامه داشته باشه باید چیکار کنم؟
چرا رنگ ب صورت خودکار تعغیر نمیکنه