Android Tutorial
Software Setup and Configuration
Android Studio
File Structure
Components
Core Topics
Layout
View
Button
Intent and Intent Filters
Toast
RecyclerView
Fragments
Adapters
Other UI Component
Image Loading Libraries
Date and Time
Material Design
Bars
Working with Google Maps
Chart
Animation
Database
Advance Android
Jetpack
Architecture
App Publish
App Monetization
Rotating a view using animation in Android is simple and can make your app more dynamic and engaging. Here's how to create a rotate animation in Kotlin:
First, create an XML file for the rotation animation inside the res/anim
directory. If the anim
directory doesn't exist, you can create it.
rotate_animation.xml (inside res/anim
):
<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500" android:fromDegrees="0" android:interpolator="@android:anim/linear_interpolator" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360" />
This XML defines a rotation animation that will rotate a view from 0 to 360 degrees around its center in 500 milliseconds.
In your Kotlin code (for example, in an Activity
), load and start the animation like this:
import android.os.Bundle import android.view.animation.AnimationUtils import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Load the animation val rotateAnimation = AnimationUtils.loadAnimation(this, R.anim.rotate_animation) // Assuming you have a button or some other view with the ID 'myView' // Apply the animation to that view myView.startAnimation(rotateAnimation) } }
Make sure you have the view (myView
in this case) defined in your XML layout.
To make it even more Kotlin-friendly, you can create an extension function:
fun View.rotate() { val rotateAnimation = AnimationUtils.loadAnimation(context, R.anim.rotate_animation) this.startAnimation(rotateAnimation) } // Usage: myView.rotate()
This way, you can easily call .rotate()
on any view to apply the rotation animation.
Rotate animation example in Android using Kotlin:
Define a rotate animation in res/anim/rotate_anim.xml
:
<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:toDegrees="360" android:pivotX="50%" android:pivotY="50%" android:duration="1000" android:repeatCount="infinite"/>
Apply the animation to a view programmatically:
val rotateAnimation = AnimationUtils.loadAnimation(this, R.anim.rotate_anim) view.startAnimation(rotateAnimation)
Animating views with rotation in Android Kotlin:
Use ObjectAnimator
for rotation animation:
val rotateAnimator = ObjectAnimator.ofFloat(view, "rotation", 0f, 360f) rotateAnimator.duration = 1000 rotateAnimator.start()
Rotate ImageView
animation in Android with Kotlin:
val imageView = findViewById<ImageView>(R.id.imageView) val rotateAnimator = ObjectAnimator.ofFloat(imageView, "rotation", 0f, 360f) rotateAnimator.duration = 1000 rotateAnimator.start()
Creating a spinning animation in Android Kotlin:
Create a continuous rotation animation using RotateAnimation
:
val rotateAnimation = RotateAnimation( 0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f ) rotateAnimation.duration = 2000 rotateAnimation.repeatCount = Animation.INFINITE view.startAnimation(rotateAnimation)
Programmatic rotation animation in Android using Kotlin:
Use RotateAnimation
programmatically:
val rotateAnimation = RotateAnimation( 0f, 45f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f ) rotateAnimation.duration = 1000 view.startAnimation(rotateAnimation)
Rotating a view with ObjectAnimator
in Android Kotlin:
val rotateAnimator = ObjectAnimator.ofFloat(view, View.ROTATION, 0f, 360f) rotateAnimator.duration = 1000 rotateAnimator.start()
Rotate animation XML in Android Kotlin:
You can define the rotate animation in XML and apply it programmatically:
val rotateAnimation = AnimationUtils.loadAnimation(this, R.anim.rotate_anim) view.startAnimation(rotateAnimation)
Continuous rotation animation in Android Kotlin:
Create a continuous rotation using ObjectAnimator
:
val rotateAnimator = ObjectAnimator.ofFloat(view, "rotation", 0f, 360f) rotateAnimator.duration = 2000 rotateAnimator.repeatCount = ObjectAnimator.INFINITE rotateAnimator.interpolator = LinearInterpolator() rotateAnimator.start()
Rotate layout animation in Android with Kotlin:
Rotate an entire layout:
val rotateAnimator = ObjectAnimator.ofFloat(layout, "rotation", 0f, 180f) rotateAnimator.duration = 1000 rotateAnimator.start()