본문 바로가기
컴퓨터 공학/Android

[2020 안드로이드 스튜디오] Drawable 드로어블 애니메이션 그라데이션

by hahehohoo 2020. 4. 22.
반응형

Drawable 드로어블 개체로 움직이는 그라데이션 만들기

 

안드로이드 스튜디오에서 드로어블 xml파일을 이용해 메인액티미티에서 움직이는 애니메이션을 만들어 볼 것입니다. 

일정 시간이 지나면 자동으로 색이 변합니다. 

 

 

 

미리 만들어둔 bg_btn.xml, bg_btn2.xmlbg_btn3.xml를 사용할 것이기 때문에 xml 소스 파일은 여기에서 참고해주세요. 

드로어블 파일 생성하는 기본적인 방법을 알고 싶으시면 여기서부터 따라와주세요. 

 

STEP 1  app - res - drawable에서 xml를 만들어주세요. 

저는 파일명을 android_gradient_list.xml로 지었습니다. 

 

STEP 2  다음 코드를 작성하세요. 

■ android_gradient_list.xml

<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/bg_btn"
        android:duration="4000" />

    <item
        android:drawable="@drawable/bg_btn2"
        android:duration="4000" />

    <item
        android:drawable="@drawable/bg_btn3"
        android:duration="4000" />
</animation-list>

 

STEP 3  효과를 주고 싶은 개체의 배경으로 지정해주세요. 

■ activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:background="#F9F9F9"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">

    <ImageButton
        android:id="@+id/imagebutton"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_margin="24dp"
        //배경 지정
        android:background="@drawable/android_gradient_list" />

</LinearLayout>

 

STEP 4  메인액티비티 자바 파일에 다음 코드를 작성하세요 .

■ MainActivity.java

package com.boostcourse.testfortistory;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageButton;

public class MainActivity extends AppCompatActivity {

    ImageButton imageButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageButton = findViewById(R.id.imagebutton);

        AnimationDrawable animationDrawable = (AnimationDrawable) imageButton.getBackground();
        animationDrawable.setEnterFadeDuration(2000);
        animationDrawable.setExitFadeDuration(4000);
        animationDrawable.start();
    }
}

STEP 5 애뮬레이터를 실행시켜서 확인하세요. 

 

 

 

 

로지텍 크래프트 키보드, 단일 상품, 혼합 색상이것이 안드로이드다:박성근의 안드로이드 앱 프로그래밍, 한빛미디어로지텍 스테레오 게이밍 헤드셋, G331, 혼합 색상소문난 명강의 오준석의 플러터 생존 코딩:Flutter와 Dart 입문부터 안드로이드와 iOS용 3가지 앱 개발까지, 한빛미디어델 68.47 cm QHD IPS 울트라 샤프 모니터 + HDMI 케이블, U2719D

 

 

반응형


댓글