상세 컨텐츠

본문 제목

[안드로이드] View(뷰) 애니메이션(Animation) 쉽게 적용하는 방법

안드로이드

by aries574 2022. 2. 11. 13:27

본문


이번 시간에는 안드로이드에서 쓰이는

각종 뷰[텍스트뷰(TextView), 이미지뷰(ImageView)]

들에게 애니메이션 쉽게 적용하는 방법을 알아보겠습니다.

간단한 애니메이션 쓰고 싶을 때 좋습니다.


목차

1. 실행 화면

2. 라이브러리 등록

3. 메인 화면 구성 activity_main.xml

4. 메인 코드 구현 MainActivity.java


1. 실행 화면

 

2. 라이브러리 등록

build.gradle(Module:프로젝트명:app)

dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.

implementation 'com.daimajia.androidanimations:library:2.4@aar'

 참조 문서

https://github.com/daimajia/AndroidViewAnimations

 

GitHub - daimajia/AndroidViewAnimations: Cute view animation collection.

Cute view animation collection. Contribute to daimajia/AndroidViewAnimations development by creating an account on GitHub.

github.com

 

 

3. 메인 화면 구성 activity_main.xml

 - 설명 -

 1. 1개의 텍스트뷰와 6개의 버튼

 2. 각 버튼은 버튼 이름의 애니메이션 기능을

  텍스트뷰에게 적용합니다.

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/ani_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="100dp"
        android:text="Animation"
        android:textSize="30sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:id="@+id/flash_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="flash" />

        <Button
            android:id="@+id/pulse_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="pulse" />

        <Button
            android:id="@+id/shake_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="shake" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:id="@+id/fadeIn_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="fade_In" />

        <Button
            android:id="@+id/fadeOut_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="fade_out" />

        <Button
            android:id="@+id/zoomIn_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="zoom_in" />

    </LinearLayout>
</LinearLayout>



4. 메인 코드 구현 MainActivity.java

 - 속성 -

 duration: 지속 시간 ( 1000: 1초 )

 repeat: 반복 횟수

 playOn: 애니메이션 적용시킬 뷰

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //반짝반짝
        Button flashBtn = findViewById(R.id.flash_btn);
        flashBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                YoYo.with(Techniques.Flash)
                        .duration(700)
                        .repeat(1)
                        .playOn(findViewById(R.id.ani_text_view));
            }
        });

        //전류
        Button pulseBtn = findViewById(R.id.pulse_btn);
        pulseBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                YoYo.with(Techniques.Pulse)
                        .duration(700)
                        .repeat(1)
                        .playOn(findViewById(R.id.ani_text_view));
            }
        });

        //흔들흔들
        Button shakeBtn = findViewById(R.id.shake_btn);
        shakeBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                YoYo.with(Techniques.Shake)
                        .duration(700)
                        .repeat(1)
                        .playOn(findViewById(R.id.ani_text_view));
            }
        });

        //스르륵 나타남
        Button fadeInBtn = findViewById(R.id.fadeIn_btn);
        fadeInBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                YoYo.with(Techniques.FadeIn)
                        .duration(700)
                        .repeat(1)
                        .playOn(findViewById(R.id.ani_text_view));
            }
        });

        //스르륵 사라짐
        Button fadeOutBtn = findViewById(R.id.fadeOut_btn);
        fadeOutBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                YoYo.with(Techniques.FadeOut)
                        .duration(700)
                        .repeat(1)
                        .playOn(findViewById(R.id.ani_text_view));
            }
        });

        //가까워짐
        Button zoomInBtn = findViewById(R.id.zoomIn_btn);
        zoomInBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                YoYo.with(Techniques.ZoomIn)
                        .duration(700)
                        .repeat(1)
                        .playOn(findViewById(R.id.ani_text_view));
            }
        });
    }

} //MainActivity

2022.02.10 - [안드로이드] - [안드로이드] 별점(RatingBar) 쉽게 꾸미는 방법

 

[안드로이드] 별점(RatingBar) 쉽게 꾸미는 방법

이번 시간에는 별점(RatingBar) 쉽게 꾸미는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. 메인 화면 구성 activity_main.xml 4. 메인 코드 구현 MainActivity.java 1. ..

aries574.tistory.com

2022.02.09 - [안드로이드] - [안드로이드] 패턴(patternLockView) 잠금 쉽게 만드는 방법

 

[안드로이드] 패턴(patternLockView) 잠금 쉽게 만드는 방법

이번 시간에는 안드로이드 패턴 잠금 쉽게 만드는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. 메인 화면 구성 activity_main.xml 4. 메인 코드 구현 MainActivity.java.

aries574.tistory.com

2022.02.08 - [안드로이드] - [안드로이드] 원형 다이얼로그( Dialog) 쉽게 만드는 방법

 

[안드로이드] 원형 다이얼로그( Dialog) 쉽게 만드는 방법

이번 시간에는 원형의 다이얼로그를 쉽게 만드는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. 메인 화면 구성 activity_main.xml 4. 메인 코드 구현 MainActivity.java 1. 실..

aries574.tistory.com

반응형

관련글 더보기

댓글 영역