android 指针动画转动

记录一种简单动画

效果图:

都是直接使用图片资源FrameLayout布局实现,布局如下:

java 复制代码
<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"
    android:orientation="vertical"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="22dp"
        android:layout_marginTop="16dp"
        android:text="Manager"
        android:textColor="#010101"
        android:textSize="22sp" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="22dp">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scaleType="fitXY"
               />

            <ImageView
                android:layout_width="274dp"
                android:layout_height="137dp"
                android:layout_marginTop="34dp"

                android:layout_gravity="center_horizontal"

                android:scaleType="fitXY"
                android:src="@drawable/img_storage" />
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_marginTop="80sp"
                android:layout_gravity="center_horizontal"
                >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/color_db3"
                android:layout_gravity="center_horizontal"
                android:textSize="16sp" android:textStyle="bold"
                android:text="Storage"
                />
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:orientation="horizontal">
                <TextView
                    android:id="@+id/tv_percentage"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="@color/color_545"
                    android:layout_gravity="center_horizontal"
                    android:textSize="44dp"
                    android:text="0"
                    android:textStyle="bold"
                    />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="32dp"
                        android:text="%"
                        android:textColor="#ff914545"
                        android:layout_gravity="center_vertical"
                        android:textSize="28sp"
                        />
                </LinearLayout>
                <TextView
                    android:id="@+id/tv_storage"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="@color/color_545"
                    android:layout_gravity="center_horizontal"
                    android:textSize="14sp"
                    android:text="99.1/108GB" />
            </LinearLayout>

            <ImageView
                android:id="@+id/iv_position"
                android:layout_width="262dp"
                android:layout_height="262dp"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="40dp"
                android:scaleType="fitXY"
                android:src="@drawable/img_storage_icon" />


        </FrameLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="200dp"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="24dp"
                android:layout_marginTop="24dp"
                android:layout_marginBottom="16dp"
                android:text="Manager"
                android:textColor="@android:color/white"
                android:textSize="16sp"
                android:visibility="gone"
                android:textStyle="bold" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="40dp"
                android:orientation="horizontal">
                <LinearLayout
                    android:id="@+id/cardDocement"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"

                    android:tag="0"

                    app:cardCornerRadius="16dp"
                    android:layout_weight="1">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:gravity="center_horizontal"
                        android:orientation="vertical">

                        <RelativeLayout
                            android:layout_width="78dp"
                            android:layout_height="78dp"

                            >

                            <ImageView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_centerInParent="true"
                                android:src="@drawable/img_document" />

                        </RelativeLayout>

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="14dp"
                            android:orientation="vertical">

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Doceumen"
                                android:textColor="#333333"
                                android:textSize="14sp"
                                android:textStyle="bold" />

                            <TextView

                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="8dp"
                                android:textColor="#999999"
                                android:textSize="14sp"
                                android:visibility="gone"
                                tools:text="Size: 22MB" />

                        </LinearLayout>

                    </LinearLayout>

                </LinearLayout>
                <LinearLayout
                    android:id="@+id/cardPhoto"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"

                    android:tag="0"

                    app:cardCornerRadius="16dp"
                    android:layout_weight="1">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:gravity="center_horizontal"
                        android:orientation="vertical">

                        <RelativeLayout
                            android:layout_width="78dp"
                            android:layout_height="78dp"

                            >

                            <ImageView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_centerInParent="true"
                                android:src="@drawable/img_photo" />

                        </RelativeLayout>

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="14dp"
                            android:orientation="vertical">

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Photos"
                                android:textColor="#333333"
                                android:textSize="14sp"
                                android:textStyle="bold" />

                            <TextView
                                android:id="@+id/tv_photo"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="8dp"
                                android:textColor="#999999"
                                android:textSize="14sp"
                                android:visibility="gone"
                                tools:text="Size: 22MB" />

                        </LinearLayout>

                    </LinearLayout>

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/cardVideo"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:tag="1"
                    app:cardBackgroundColor="@android:color/white"
                    app:cardCornerRadius="16dp"
                    android:layout_weight="1">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:gravity="center_horizontal"
                        android:orientation="vertical"
                        android:tag="1">

                        <RelativeLayout
                            android:layout_width="78dp"
                            android:layout_height="78dp"

                            >

                            <ImageView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_centerInParent="true"
                                android:src="@drawable/img_video" />

                        </RelativeLayout>

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="14dp"
                            android:orientation="vertical">

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Video"
                                android:textColor="#333333"
                                android:textSize="14sp"
                                android:textStyle="bold" />

                            <TextView
                                android:id="@+id/tv_video"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="8dp"
                                android:textColor="#999999"
                                android:textSize="14sp"
                                android:visibility="gone"
                                tools:text="Size: 22MB" />

                        </LinearLayout>

                    </LinearLayout>

                </LinearLayout>>

                <LinearLayout
                    android:id="@+id/cardMusic"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:visibility="gone"
                    android:tag="2"
                    app:cardBackgroundColor="@android:color/white"

                    android:layout_weight="1">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"

                        android:gravity="center_horizontal"
                        android:orientation="vertical"
                        android:tag="1">

                        <RelativeLayout
                            android:layout_width="60dp"
                            android:layout_height="60dp"

                            android:background="@drawable/card_ffda65_r16">

                            <ImageView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_centerInParent="true"
                                android:src="@drawable/icon_music" />

                        </RelativeLayout>

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="14dp"
                            android:orientation="vertical">

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Music"
                                android:textColor="#333333"
                                android:textSize="14sp"
                                android:textStyle="bold" />

                            <TextView
                                android:id="@+id/tv_music"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="8dp"
                                android:textColor="#999999"
                                android:textSize="14sp"
                                tools:text="Size: 22MB"
                                android:visibility="gone"/>

                        </LinearLayout>

                    </LinearLayout>

                </LinearLayout>
            </LinearLayout>
            <LinearLayout      android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_marginTop="32dp">
                <LinearLayout
                    android:id="@+id/cardApk"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginHorizontal="1dp"

                    android:tag="3"

                    app:cardCornerRadius="16dp"
                    android:layout_weight="1" >

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:gravity="center_horizontal"
                        android:orientation="vertical"
                        android:tag="1">

                        <RelativeLayout
                            android:layout_width="78dp"
                            android:layout_height="78dp"

                            >

                            <ImageView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_centerInParent="true"
                                android:src="@drawable/img_apks" />

                        </RelativeLayout>

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:orientation="vertical"
                            android:layout_marginTop="14dp">

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="APKs"
                                android:textColor="#333333"
                                android:textSize="14sp"
                                android:textStyle="bold" />

                            <TextView
                                android:id="@+id/tv_apk"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="8dp"
                                android:textColor="#999999"
                                android:textSize="14sp"
                                tools:text="Size: 22MB"
                                android:visibility="gone"/>

                        </LinearLayout>

                    </LinearLayout>

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/cardBigFile"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginHorizontal="1dp"
                    android:tag="4"
                    app:cardBackgroundColor="@android:color/white"
                    app:cardCornerRadius="16dp"
                    android:layout_weight="1">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:gravity="center_horizontal"
                        android:orientation="vertical"
                        android:tag="1">

                        <RelativeLayout
                            android:layout_width="78dp"
                            android:layout_height="78dp"

                            >

                            <ImageView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_centerHorizontal="true"
                                android:src="@drawable/img_bigfiles" />

                        </RelativeLayout>

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:orientation="vertical"
                            android:layout_marginTop="14dp">

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Big Files"
                                android:textColor="#333333"
                                android:textSize="14sp"
                                android:textStyle="bold" />

                            <TextView
                                android:id="@+id/tv_bigFile"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="8dp"
                                android:textColor="#999999"
                                android:textSize="14sp"
                                android:visibility="gone"
                                tools:text="Size: 22MB" />

                        </LinearLayout>

                    </LinearLayout>

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/cardRecentFile"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginHorizontal="1dp"
                    android:tag="4"
                    app:cardBackgroundColor="@android:color/white"
                    app:cardCornerRadius="16dp"
                    android:layout_weight="1">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:gravity="center_horizontal"
                        android:orientation="vertical"
                        android:tag="1">

                        <RelativeLayout
                            android:layout_width="78dp"
                            android:layout_height="78dp">

                            <ImageView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_centerHorizontal="true"
                                android:src="@drawable/img_recentfiles" />

                        </RelativeLayout>

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:orientation="vertical"
                            android:layout_marginTop="14dp">

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Recent Files"
                                android:textColor="#333333"
                                android:textSize="14sp"
                                android:textStyle="bold" />

                            <TextView

                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="8dp"
                                android:textColor="#999999"
                                android:textSize="14sp"
                                android:visibility="gone"
                                tools:text="Size: 22MB" />

                        </LinearLayout>

                    </LinearLayout>

                </LinearLayout>
            </LinearLayout>


        </LinearLayout>

    </FrameLayout>

</LinearLayout>

Activity中动画代码

java 复制代码
private void loadIngData(double loading) {
        double loadingnum=loading*1.8;//进度值*角度比
        ObjectAnimator animator = ObjectAnimator.ofFloat(mImagStorageView, "rotation", (float) loadingnum);
        animator.setDuration(1000);
        animator.start();

    }

-END

相关推荐
weixin_460443561 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
海鸥-w4 小时前
什么是AOP
java
Cc.Y4 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
paopaokaka_luck4 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787054 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
阿森_dev4 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
Sarvartha5 小时前
Lambda 表达式和函数式接口
java·开发语言
计算机毕业设计杰瑞5 小时前
【计算机毕设精品】基于SpringBoot的一体化教务与学业质量管理系统的设计与实现,附源码_增删改查_java项目_可完美运行部署_网站项目
java·spring boot·课程设计
colinu5 小时前
C++ 异步任务与线程生命周期:`std::async`、`future`、`thread`、`jthread` 与协作式退出
java·jvm·c++
大圣编蚕5 小时前
初探 NDK 的世界:从零开始理解 Android 原生开发
android