آموزش ساخت background متحرک در برنامه نویسی اندروید

امتیاز 1.50 ( 2 رای )

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش ساخت background متحرک در برنامه نویسی اندروید می پردازیم دقیقا بخواهید بدونید چیه ما برای پس زمینه layout خودمان یک سری انیمیشن ایجاد می کنیم که تغییر کنید دقیق تر بخواهیم بگیم یه چیزی شبیه به background صفحه لوگین اینستاگرام می شود در ادامه با ما همراه باشید.
ما سه تا فایل xml داریم که به نام های gradient_1.xml , gradient_2.xml و gradient_3.xml این ها کار اصلی برنامه ما می شود و این اجزا در پوشه drawable باید قرار گیرند
پس فایل اولی یا gradient_1.xml همانند زیر می شود.

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

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

<?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 ایجاد کنید و کد زیر را در آن قرار دهید.

<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 قرار دهید مثل زیر

android:background="@drawable/android_gradient_list"

ما یک نمونه دیگر برای شما قرار میدهیم.

<?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 را تنظیم کنید.
 
حالا بخش کد برنامه هم مثل زیر می شود.

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 های دیگر هم همین به همین شکل است با کمی تغییر.
 
این آموزش هم به پایان رسید.
 
موفق و موید باشید.

مطالعه بیشتر