iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在Android中实现一个仿微软系统加载动画效果
  • 590
分享到

怎么在Android中实现一个仿微软系统加载动画效果

2023-06-14 11:06:32 590人浏览 独家记忆
摘要

怎么在Android中实现一个仿微软系统加载动画效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现步骤:初始化五个圆球分别设置中心点,方便画圆利用ValueAnimat

怎么在Android中实现一个仿微软系统加载动画效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

实现步骤:

  • 初始化五个圆球分别设置中心点,方便画圆

  • 利用ValueAnimator的值变化来获取旋转角度

  • onDraw来分别画每个圆

具体代码实现:

1、创建Circle对象

package com.sjl.keeplive.track;import android.graphics.canvas;import android.graphics.Paint;import android.graphics.PointF;public class Circle {    private PointF center;    private float radius;    public Circle() {        center = new PointF();    }        public void setRadius(float radius) {        this.radius = radius;    }        public void setCenter(float x, float y) {        center.set(x, y);    }    public void draw(Canvas canvas, Paint paint) {        canvas.drawCircle(center.x,center.y,radius,paint);    }}

2、自定义MinSoftLoadingView实现代码

package com.sjl.keeplive.track;import android.animation.ValueAnimator;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PointF;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.View;public class MinSoftLoadingView extends View {    private int circleCount = 5;    private Circle[] circles;    private Paint paint;    private int width;    private int height;    private PointF center;    private float circleRadius;    private float[] rotates;    private float roateRadius;    public MinSoftLoadingView(Context context) {        this(context, null);    }    public MinSoftLoadingView(Context context, @Nullable AttributeSet attrs) {        this(context, attrs, 0);    }    public MinSoftLoadingView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        paint = new Paint();        paint.setAntiAlias(true);        paint.setColor(Color.WHITE);        //每个点旋转的角度        rotates = new float[circleCount];    }    @Override    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {        super.onLayout(changed, left, top, right, bottom);        width = getWidth();        height = getHeight();        center = new PointF(width / 2.0f, height / 2.0f);        //旋转扫描半径        roateRadius = Math.min(width, height);        //圆球最大的那个半径        circleRadius = roateRadius / 10.0f;        initCircle();    }        private void initCircle() {        circles = new Circle[circleCount];        for (int i = 0; i < circleCount; i++) {            circles[i] = new Circle();            circles[i].setCenter(center.x, center.y - roateRadius / 2 + circleRadius);            circles[i].setRadius(circleRadius - circleRadius * i / 5);        }        //开始执行动画        startAnimation();    }    private void startAnimation() {        for (int i = 0; i < circleCount; i++) {            final int index = i;            ValueAnimator animator = ValueAnimator.ofFloat(0, 360);            animator.setRepeatCount(ValueAnimator.INFINITE);//重复            animator.setDuration(2000);            animator.setStartDelay(index * 100); //每一个随后的延迟时间            animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {                @Override                public void onAnimationUpdate(ValueAnimator animation) {                    rotates[index] = (float) animation.getAnimatedValue();                    invalidate();                }            });            animator.start();        }    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        for (int i = 0; i < circleCount; i++) {            canvas.save();            canvas.rotate(rotates[i], center.x, center.y);            circles[i].draw(canvas, paint);            canvas.restore();        }    }}

3、布局文件中使用

<com.sjl.keeplive.track.MinSoftLoadingView        android:layout_width="60dp"        android:layout_height="60dp"        android:layout_gravity="center"/>

关于怎么在Android中实现一个仿微软系统加载动画效果问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 怎么在Android中实现一个仿微软系统加载动画效果

本文链接: https://www.lsjlt.com/news/270553.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在Android中实现一个仿微软系统加载动画效果
    怎么在Android中实现一个仿微软系统加载动画效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现步骤:初始化五个圆球分别设置中心点,方便画圆利用ValueAnimat...
    99+
    2023-06-14
  • Android实现仿微软系统加载动画效果
    目录效果图:实现步骤:具体代码实现:1、创建Circle对象2、自定义MinSoftLoadingView实现代码3、布局文件中使用效果图: 实现步骤: 初始化五个圆球分...
    99+
    2024-04-02
  • Android实现仿iOS菊花加载圈动画效果
    目录常见的实现方式效果图:完整代码布局代码 常见的实现方式 切图,做旋转动画 自定义View,绘制效果 gif图 1、切图会增加体积,但相对简单,不过在换...
    99+
    2024-04-02
  • 怎么在Android应用中实现一个加载数据帧动画效果
    这期内容当中小编将会给大家带来有关怎么在Android应用中实现一个加载数据帧动画效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现步骤:1、xml布局<&#63;xml version...
    99+
    2023-05-31
    android roi
  • android怎么实现加载动画效果
    Android中实现加载动画效果可以通过以下几种方式:1. 使用ProgressBar:ProgressBar是Android系统提...
    99+
    2023-08-08
    android
  • Android如何实现仿iOS菊花加载圈动画效果
    这篇文章主要介绍了Android如何实现仿iOS菊花加载圈动画效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。常见的实现方式切图,做旋转动画自定义View,绘制效果gif图...
    99+
    2023-06-15
  • 怎么在Android应用中实现一个动画效果
    本篇文章给大家分享的是有关怎么在Android应用中实现一个动画效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Android 三种动画详解帧动画一张张图片不断的切换,形成动...
    99+
    2023-05-31
    android roi
  • Android怎么实现加载视差动画效果
    本篇内容主要讲解“Android怎么实现加载视差动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android怎么实现加载视差动画效果”吧!基础知识继 Android实现旋转动画...
    99+
    2023-06-20
  • Android Flutter怎么实现仿闲鱼动画效果
    这篇文章主要讲解了“Android Flutter怎么实现仿闲鱼动画效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android Flutter怎么实现仿闲鱼动画效果...
    99+
    2023-07-05
  • 怎么在android中利用ProgressDialog实现一个加载效果
    怎么在android中利用ProgressDialog实现一个加载效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。先自定义一个类继承ProgressDialogpubli...
    99+
    2023-05-31
    android progressdialog gr
  • 怎么在Android中实现一个笑脸进度加载动画
    怎么在Android中实现一个笑脸进度加载动画?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系...
    99+
    2023-06-14
  • 如何实现一个全屏的加载动画效果
    本篇内容主要讲解“如何实现一个全屏的加载动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现一个全屏的加载动画效果”吧!  这个效果的核心是让一个形状...
    99+
    2024-04-02
  • 如何在Android中利用ConstraintLayout实现一个动画效果
    这篇文章将为大家详细讲解有关如何在Android中利用ConstraintLayout实现一个动画效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。xml布局:<!-- activit...
    99+
    2023-05-31
    android constraintlayout roi
  • Android中怎么利用ViewDragHelper实现一个淘宝拖动加载效果
    本篇文章为大家展示了Android中怎么利用ViewDragHelper实现一个淘宝拖动加载效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。创建自定义ViewGroup:package ...
    99+
    2023-05-30
    android viewdraghelper
  • Android中怎么自定义加载圈动画效果
    这篇文章给大家介绍Android中怎么自定义加载圈动画效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体代码如下:package blog.csdn.net.mchenys.myanimationload...
    99+
    2023-05-30
    android
  • 怎么在Android中使用ScrollView实现一个下拉弹回动画效果
    本篇文章给大家分享的是有关怎么在Android中使用ScrollView实现一个下拉弹回动画效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Android是什么Android...
    99+
    2023-05-30
    android scrollview
  • 怎么用css3实现loading加载动画效果
    这篇文章主要介绍“怎么用css3实现loading加载动画效果”,在日常操作中,相信很多人在怎么用css3实现loading加载动画效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • 如何在Android应用中利用Dialog实现一个动画效果
    今天就跟大家聊聊有关如何在Android应用中利用Dialog实现一个动画效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 创建两个动画文件window_in.xml:<&a...
    99+
    2023-05-31
    android dialog roi
  • 怎么在HTML5中实现一个移动端弹幕动画效果
    怎么在HTML5中实现一个移动端弹幕动画效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。思路把单个内容编辑好,计算自身宽度,确定初始位置 移动的距离是屏幕宽度js动...
    99+
    2023-06-09
  • 如何在Android应用中实现一个Gallery画廊效果
    这期内容当中小编将会给大家带来有关如何在Android应用中实现一个Gallery画廊效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。画廊 使用Gallery表示,按水平方向显示内容,并且可以用手指直接...
    99+
    2023-05-31
    android gallery roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作