본문 바로가기
JAVA/Android

[Android] PinWhell(바람개비) 회전 애니메이션

by 개폰지밥 2019. 4. 25.
반응형

| Pinwheel (바람개비)

설명 : 바람개비가 일정한 속도로 계속 회전하는 애니메이션

어플리케이션 이름은 Pinwheell 어플리케이션 라벨은 바람개비로 한다.

바람개비가 2초간 360도를 같은 속도로 회전하며, 애니메이션을 계속 반복함(계속 회전)

 

모듈 폴더 소스 파일 편집 내용
manifests   AndroidManifest.xml  
Java Com.example.yschang.pinwheel1 MainActivity.java 바람개비 이미지 회전
Res Drawable Pinwheel.png 바람개비 이미지
Layout Activity_main.xml 바람개비 이미지 중앙 배치
Values String.xml 어플리케이션 라벨 수정

 

l  Match_parent: 화면전체

l  Wrap_content: 본인의 이미지 크기만큼

 

| String.xml

<resources>
    <string name="app_name">바람개비1</string>
</resources>

 

Activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/pinwheel"
        android:src="@drawable/pinwheel" />

</RelativeLayout>

 

| MainActivity.java

package com.example.myapplication;

import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    @Override
    /*MainActivity 자바 클래스가 호출할 때 처음 실행되는 메소드*/
    protected void onCreate(Bundle savedInstanceState) {
        /*액티비티 생성*/
        super.onCreate(savedInstanceState);
        /*activity_main.xml에서 정의된 화면 레이아웃을 액티비티에 출력*/
        setContentView(R.layout.activity_main);

        /*id가 pinwheel인 이미지를 인식함*/
        ImageView iv_pingwhell =(ImageView)findViewById(R.id.pinwheel);

        /*인식한 이미지를 360도 회전시키는 애니메이션 객체 생성*/
        ObjectAnimator object = ObjectAnimator.ofFloat(iv_pingwhell, "rotation",360);

        /*일정한 속도로 움직이게 함*/
        object.setInterpolator(new LinearInterpolator());

        /*애니메이션 시간을 2초로 설정*/
        object.setDuration(2000);

        /*애니메이션을 무한번 반복하도록 설정*/
        object.setRepeatCount(ValueAnimator.INFINITE);

        /*애니메이션을 실행함*/
        object.start();
    }
}

 

| 결과

 

[관련 게시글]

[Android] 안드로이드 스튜디오 설치 : https://seul96.tistory.com/58
[Android] 바람개비 회전 애니메이션 : https://seul96.tistory.com/62
[Android] 화면터치 시 이미지 따라오기 : https://seul96.tistory.com/310
[Android] 그림 글 배치 : https://seul96.tistory.com/63
[Android] 글의 목록 만들기 : https://seul96.tistory.com/311
[Android] manifests, java, res / 레이아웃 유형 : https://seul96.tistory.com/64
[Android] toast 배경색 변경 방법 + 색상표 : https://seul96.tistory.com/65
[Android] 계산기 구현 : https://seul96.tistory.com/66
[Android] 위치 배열 gravity linear layout relative layout 사용 : https://seul96.tistory.com/67
[Android] 액티비티 전환 intent 예시 + 4대 컴포넌트 : https://seul96.tistory.com/68
[Android] 이벤트 처리와 액티비티간 이동 : https://seul96.tistory.com/70
[Android] 리스트뷰 : https://seul96.tistory.com/79
[Android] 커스텀 리스트뷰 : https://seul96.tistory.com/80
[Android] 안드로이드 공공데이터(API) 사용하는 방법 : https://seul96.tistory.com/85
[Android] Padding/layout_margin, visibility 속성 : https://seul96.tistory.com/312

 

반응형

댓글