Show Indicator trong Android | Hiển thị indicator trong Android

Show Indicator trong Android | Hiển thị indicator trong Android
5 (100%) 1 Hài lòng

Để hiển thị 1 cái indicator trong Android như iOS thì bạn có thể tham khảo cách này.

  • Đầu tiên bạn cần có ảnh loading indicator dạng gif, sau đó tách nó ra thành nhiều ảnh vì bản chất ảnh gif là nhiều ảnh ghép lại với nhau mà (thông thường là dạng png cho đẹp).
  • Tiếp theo tạo thẻ ImageView chỗ mà bạn muốn indicator hiển thị.
  • Tiếp theo tạo ra file animation cho vào mục drawable bên trong là đường dẫn của các ảnh đã tích ra từ gif
  • Thực hiện Animation cho file xml bên trên.

Nào bắt đầu đi thực hiện từng bước.

Kiếm ảnh gif và tách nó ra

Bạn lấy ảnh gif trên mạng hoặc dùng cái này của mình.

Sau đó vào trang này để tách ra: https://convertio.co/gif-png/
Tách xong tải về và copy vào thư mục drawable của dự án ../duan/app/src/main/res/drawable/

Tạo ra thẻ ImageView

<ImageView
    android:id="@+id/loadingIcon"
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:layout_gravity="center"
    android:visibility="visible"
    android:layout_marginEnd="5dp"
    android:layout_toStartOf="@+id/statusTitle"/>

Tạo ra file animation

Tạo file loading_icon.xml như sau với duration là tốc độ xoay của icon

<?xml version="1.0" encoding="utf-8"?><!--
  ~ Copyright (c) 2019. Trinh Thanh Do
  -->

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">

    <item
        android:drawable="@drawable/loading1"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading2"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading3"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading4"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading5"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading6"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading7"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading8"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading9"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading10"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading11"
        android:duration="60" />
    <item
        android:drawable="@drawable/loading12"
        android:duration="60" />
</animation-list>

Show nó ra trong code Java

 private AnimationDrawable animationDrawable;
 private ImageView mIndicatorImg;
 mIndicatorImg = view.findViewById(R.id.loadingIcon);
        mIndicatorImg.setBackgroundResource(R.drawable.loading_icon);
        animationDrawable = (AnimationDrawable) mIndicatorImg.getBackground();
        // to show indicator
        mIndicatorImg.setVisibility(View.VISIBLE);
        animationDrawable.start();
        // to hide indicator
//        mProgressBar.setVisibility(View.GONE);
//        animationDrawable.stop();
Như vậy là xong. Hãy xem demo.

Ngoài ra chúng ta có thể dùng thư viện Glide như sau:

Glide.with(context).asGif().load(R.drawable.loading).into(imgView);

Các bài viết không xem thì tiếc:

Chia sẻ là sexy

dotrinh

Một lập trình viên dũng cảm, hòa đồng, luôn sống tích cực và anh ấy quay tay khỏe và khéo trong môn bi lắc :) Xem thêm thông tin tại trang -> Giới thiệu

Thảo luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.