Tiếp tục bài viết trước trong series Beautify Android, hôm nay mình sẽ hướng dẫn cách tạo Hiệu ứng xoay đĩa nhạc trong Android Studio.
Bạn có thường nghe nhạc trên các ứng dụng điện thoại chứ? Chắc hẳn một lần bạn đã nhìn thấy hiệu ứng đĩa xoay trên các ứng dụng nghe nhạc hiện nay. Nếu bạn là một Android Learner, bạn có tự hỏi làm thế nào để có được hiệu ứng như thế này trong ứng dụng của mình? Bài viết này sẽ là câu trả lời!
Beautify Android #2 - Hiệu ứng xoay đĩa nhạc trong Android Studio (Disc Rotation) |
Thư viện cần thiết
Đầu tiên, bạn cần thêm thư viện CircleImageView vào trong Project. Đây là thư viện giúp bạn thay thế cho ImageView truyền thống, vì nó có thể tạo ra những hình ảnh tròn.
Thêm dòng sau vào bên trong
dependencies
trong file build.gradle (app):dependencies { // ... implementation 'de.hdodenhof:circleimageview:3.0.1' // ... }
Tạo giao diện
Vào trong file xml activity_main.xml và thêm view vừa được import ở trên, ở đây mình sẽ lấy ví dụ như sau:
<?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:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:gravity="center"> <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/discImage" android:layout_width="250dp" android:layout_height="250dp" android:src="@drawable/example" app:civ_border_width="50dp" android:scaleType="centerCrop"/> </LinearLayout>
Giao diện mẫu |
Tạo hiệu ứng xoay cho hình ảnh
Đầu tiên, ta cần ánh xạ View Hình Ảnh trong file java (MainActivity.java):
CircleImageView discImage; /* --------------------------------------- */ discImage = findViewById(R.id.discImage);
Ở đây chúng ta sử dụng đối tượng ObjectAnimator để tạo hiệu ứng cho đối tượng:
Các bạn để ý các thuộc tính:ObjectAnimator discAnimator; /* -------------------------------- */ discAnimator = ObjectAnimator.ofFloat(discImage, "rotation", 0f, 360f); discAnimator.setDuration(10000); discAnimator.setRepeatCount(ValueAnimator.INFINITE); discAnimator.setRepeatMode(ValueAnimator.RESTART); discAnimator.setInterpolator(new LinearInterpolator()); discAnimator.start();
ofFloat()
: ObjectAnimator sẽ cài đặt để đối tượng chuyển động giữa hai giá trị, do propertyName chúng ta set là rotation nên nó sẽ tự hiểu là xoay từ 0 độ đến 360 độ.setDuration()
: thời gian để đối tượng hoàn thành chuyển động (tính bằng mili giây).setRepeatCount()
: số lần hiệu ứng được lặp lại, ở đây chúng ta muốn lặp vô tận nên set giá trị là INFINITE.setRepeatMode()
: chế độ lặp lại, ở đây ta sẽ set là RESTART để lặp lại hiệu ứng từ ban đầu.
package com.yourpackage.discrotation; import androidx.appcompat.app.AppCompatActivity; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.os.Bundle; import android.view.animation.LinearInterpolator; import de.hdodenhof.circleimageview.CircleImageView; public class MainActivity extends AppCompatActivity { CircleImageView discImage; ObjectAnimator discAnimator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Ánh xạ View discImage = findViewById(R.id.discImage); // Cài đặt hiệu ứng đĩa nhạc xoay tròn discAnimator = ObjectAnimator.ofFloat(discImage, "rotation", 0f, 360f); discAnimator.setDuration(10000); discAnimator.setRepeatCount(ValueAnimator.INFINITE); discAnimator.setRepeatMode(ValueAnimator.RESTART); discAnimator.setInterpolator(new LinearInterpolator()); discAnimator.start(); } }
Kết quả
Github repo: https://github.com/hdodenhof/CircleImageView
Thanh Dương
Beautify Android #2 - Hiệu ứng xoay đĩa nhạc trong Android Studio (Disc Rotation)
Reviewed by Duong-Tran Thanh
on
9/08/2019 02:45:00 CH
Rating:
Không có bình luận nào!