상세 컨텐츠

본문 제목

[안드로이드] 애니메이션 예제(배터리 충전구현)

안드로이드

by aries574 2020. 12. 4. 09:42

본문


2020/12/02 - [안드로이드] - [안드로이드] 뒤로가기버튼 두 번 눌러 종료하기 예제

2020/12/03 - [안드로이드] - [안드로이드] 뒤로가기 다이얼로그창으로 나가기


이번시간에는 애니메이션이라는 기능을 통해서 이미지가 반복적으로 변하는걸 만들어 보겠습니다. 


1. 화면구현(activity_main.xml)

이미지가 들어갈 ImageView를 하나 만듭니다.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
tools:context=".MainActivity">

<ImageView
android:id="@+id/imageView"
android:layout_width="250dp"
android:layout_height="250dp"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>


2-1 이미지 추가(Vector Asset) res -> drawable -> 마우스오른쪽 -> New -> Vector 

애니메이션에 쓰일 이미지를 추가하겠습니다.



2-2 Clip Art 옆 이미지 클릭




2-3 Battery 검색

Battery 20 선택 Ok

Battery 50 선택 Ok

Battery full 선택 Ok


3-1 이미지 설정파일 등록(animation.xml) 

위의 작업으로 이미지 3개를 추가했으면 이번에는 이미지 설정을 하겠습니다.

res -> drawable -> 마우스오른쪽 -> New -> Drawable Resource File



3-2 이미지 설정파일 구현(animation.xml)

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

<item
android:drawable="@drawable/ic_battery_20_black_24dp"
android:duration="400"/>

<item
android:drawable="@drawable/ic_battery_50_black_24dp"
android:duration="400"
/>

<item
android:drawable="@drawable/ic_battery_full_black_24dp"
android:duration="400"/>

</animation-list>



4. 기능구현(MainActivity.java)

import androidx.appcompat.app.AppCompatActivity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

AnimationDrawable bettaryAnimation;

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

ImageView imageView = findViewById(R.id.imageView);
imageView.setBackgroundResource(R.drawable.animation);
bettaryAnimation = (AnimationDrawable) imageView.getBackground();
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
bettaryAnimation.start();
}
}


5. 실행화면


마음에 드셨다면 공감부탁드려요.

반응형

관련글 더보기

댓글 영역