广告
返回顶部
首页 > 资讯 > 精选 >Android SeekBar如何自定义thumb旋转动画效果
  • 661
分享到

Android SeekBar如何自定义thumb旋转动画效果

2023-06-25 16:06:32 661人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关Android SeekBar如何自定义thumb旋转动画效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。示例dimens.xml为方便管理,可以添加一些尺寸设置<dimen&n

这篇文章给大家分享的是有关Android SeekBar如何自定义thumb旋转动画效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

    示例

    dimens.xml

    为方便管理,可以添加一些尺寸设置

    <dimen name="audio_course_item_seek_bar_progress_height">6dp</dimen><dimen name="audio_course_item_seek_bar_radius">2dp</dimen><dimen name="audio_seek_bar_thumb_size">20dp</dimen><dimen name="audio_seek_bar_thumb_ring_width">4dp</dimen>

    drawable

    我们一共要添加4个drawable文件。分别是2种thumb,1个动画,1个进度条“底座”。

    shape_thumb_round_1.xml # 静态thumblayers_seek_bar_progress_1.xmllayers_thumb_ring_sweep_1.xmlrotate_thumb_1.xml
    shape_thumb_round_1.xml

    用solid和stroke做出的圆环效果

    <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="Http://schemas.android.com/apk/res/android"    android:shape="oval">    <solid android:color="#ffffff" />    <stroke        android:width="@dimen/audio_seek_bar_thumb_ring_width"        android:color="#7095fc" />    <size        android:width="@dimen/audio_seek_bar_thumb_size"        android:height="@dimen/audio_seek_bar_thumb_size" /></shape>
    layers_thumb_ring_sweep_1.xml

    这是准备拿来转圈的thumb。使用layer-list,叠加多层效果。
    底部是一个半白色的圆(android:shape="oval")。
    再叠加上一层圆环(android:shape="ring"),使用了渐变色,增加动感。

    <?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">    <item>        <shape android:shape="oval">            <size                android:width="@dimen/audio_seek_bar_thumb_size"                android:height="@dimen/audio_seek_bar_thumb_size" />            <solid android:color="#ffffff" />        </shape>    </item>    <item>        <shape            android:innerRadius="4dp"            android:thicknessRatio="6"            android:shape="ring"            android:useLevel="false">            <gradient                android:endColor="#ffffff"                android:startColor="#7095fc"                android:type="sweep" />            <size                android:width="@dimen/audio_seek_bar_thumb_size"                android:height="@dimen/audio_seek_bar_thumb_size" />        </shape>    </item></layer-list>
    rotate_thumb_1.xml

    定义旋转效果。注意它的drawable使用了上面定义的layers_thumb_ring_sweep_1.xml。

    <?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android"    android:drawable="@drawable/layers_thumb_ring_sweep_1"    android:duration="100"    android:fromDegrees="0"    android:pivotX="50%"    android:pivotY="50%"    android:toDegrees="-360" />

    旋转参数android:toDegrees可以根据需求定义。

    layers_seek_bar_progress_1.xml

    定义进度条的样式。这个是“底座”。颜色要和上面的匹配,看起来好看一点。

    <?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">    <item android:id="@android:id/background">        <shape>            <size                android:width="5dp"                android:height="@dimen/audio_course_item_seek_bar_progress_height" />            <solid android:color="#e1e5e8" />        </shape>    </item>    <item android:id="@android:id/secondaryProgress">        <clip>            <shape>                <solid android:color="#b7bdc8" />            </shape>        </clip>    </item>    <item android:id="@android:id/progress">        <clip>            <shape>                <gradient                    android:angle="0"                    android:centerColor="#b8cafd"                    android:endColor="#86a4fd"                    android:startColor="#eef2ff" />            </shape>        </clip>    </item></layer-list>

    layout

    上面的资源文件准备完毕后。在我们的布局中添加一个SeekBar

    • android:maxHeightandroid:minHeight需要设置

    • android:progressDrawable 用前面定义好的“底座”

    • android:thumb 先使用静态的样式

    <SeekBar    android:id="@+id/play_sb"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:layout_marginTop="16dp"    android:background="@null"    android:maxHeight="@dimen/audio_course_item_seek_bar_progress_height"    android:minHeight="@dimen/audio_course_item_seek_bar_progress_height"    android:progress="40"    android:progressDrawable="@drawable/layers_seek_bar_progress_1"    android:thumb="@drawable/shape_thumb_round_1"    app:layout_constraintTop_toTopOf="parent" />

    Activity中调用

    由Activity来持有Drawable变量和动画。例子中使用了dataBinding。

    private RotateDrawable mRotateThumbDrawable; //  加载中的thumb,由Activity来持有这个drawableprivate Drawable mSolidThumb;private ObjectAnimator mThumbAnimator; // 控制动画// ...    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        mBinding = DataBindingUtil.setContentView(this, R.layout.act_seekbar_1);// ...        mRotateThumbDrawable = (RotateDrawable) AppCompatResources.getDrawable(getApplicationContext(), R.drawable.rotate_thumb_1);        mSolidThumb = AppCompatResources.getDrawable(getApplicationContext(), R.drawable.shape_thumb_round_1);    }

    Drawable对象由activity直接持有,操作起来比较方便。

    改变seekbar的thumb,使用方法setThumb(Drawable thumb)

    使用静态的thumb

    mBinding.playSb.setThumb(mSolidThumb);

    使用转圈圈的效果,先setThumb,并且需要启动动画

    mBinding.playSb.setThumb(mRotateThumbDrawable);mThumbAnimator = ObjectAnimator.ofInt(mRotateThumbDrawable, "level", 0, 10000);mThumbAnimator.setDuration(1000);mThumbAnimator.setRepeatCount(ValueAnimator.INFINITE);mThumbAnimator.setInterpolator(new LinearInterpolator());mThumbAnimator.start();

    效果如下图

    Android SeekBar如何自定义thumb旋转动画效果

    可以在静态和动态之间相互切换。

    离开页面时记得关闭动画

    @Overrideprotected void onDestroy() {    if (null != mThumbAnimator) {        mThumbAnimator.cancel();    }    super.onDestroy();}

    感谢各位的阅读!关于“Android SeekBar如何自定义thumb旋转动画效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    --结束END--

    本文标题: Android SeekBar如何自定义thumb旋转动画效果

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

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

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

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

    下载Word文档
    猜你喜欢
    • Android SeekBar 自定义thumb旋转动画效果
      目录简介示例dimens.xmldrawableshape_thumb_round_1.xmllayers_thumb_ring_sweep_1.xmlrotate_thumb_1....
      99+
      2022-11-12
    • Android SeekBar如何自定义thumb旋转动画效果
      这篇文章给大家分享的是有关Android SeekBar如何自定义thumb旋转动画效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。示例dimens.xml为方便管理,可以添加一些尺寸设置<dimen&n...
      99+
      2023-06-25
    • Android自定义View实现叶子飘动旋转效果(四)
      上一篇实现了叶子飘动功能,《Android自定义叶子飘动》 现在实现旋转效果 要实现这个效果,要在之前的功能上添加2个功能 1、通过matrix.postTranslate(...
      99+
      2022-06-06
      view Android
    • 在css3动画中如何定义旋转动画
      这篇文章主要讲解了“在css3动画中如何定义旋转动画”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在css3动画中如何定义旋转动画”吧! ...
      99+
      2022-10-19
    • Android自定义控件实现温度旋转按钮效果
      首先看下效果图 温度旋转按钮 实现思路 初始化一些参数 绘制刻度盘 绘制刻度盘下的圆弧 绘制标题与温度标识 绘制旋转按钮 绘制温度 处理滑动事...
      99+
      2022-06-06
      按钮 Android
    • Android自定义View实现动画效果详解
      目录帧动画补间动画属性动画帧动画 帧动画就是给定一个完整动画的所有关键帧,由大脑想象中间的变化过程的一种动画。 <xml version="1.0" encoding="utf...
      99+
      2023-02-02
      Android自定义View实现动画 Android 动画 Android自定义View
    • Android动画效果之自定义ViewGroup添加布局动画(五)
      前言: 前面几篇文章介绍了补间动画、逐帧动画、属性动画,大部分都是针对View来实现的动画,那么该如何为了一个ViewGroup添加动画呢?今天结合自定义ViewGroup来...
      99+
      2022-06-06
      布局 Android
    • Android如何实现自定义view画圆效果
      这篇文章主要介绍了Android如何实现自定义view画圆效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。看图代码:package sjx.com.custonv...
      99+
      2023-05-30
      android view
    • Android 自定义view实现水波纹动画效果
      在实际的开发中,很多时候还会遇到相对比较复杂的需求,比如产品妹纸或UI妹纸在哪看了个让人兴奋的效果,兴致高昂的来找你,看了之后目的很明确,当然就是希望你能给她;在这样的关键时候,身子板就一定得硬了,可千万别说不行,爷们儿怎么能说不行呢;好了...
      99+
      2023-05-31
      android 水波纹 roi
    • Android开发中MJRefresh自定义刷新动画效果
      【一】常见用法 最原始的用法,耦合度低,但是不能统一管理。我们需要在每一个控制器都写以下代码,很繁琐,以后项目修改起来更繁琐,得一个控制器一个控制器的去定位、修改。 1.1 使...
      99+
      2022-06-06
      mjrefresh android开发 动画 Android
    • Android自定义View实现loading动画加载效果
       项目开发中对Loading的处理是比较常见的,安卓系统提供的不太美观,引入第三发又太麻烦,这时候自己定义View来实现这个效果,并且进行封装抽取给项目提供统一的lo...
      99+
      2022-06-06
      view loading Android
    • Android中怎么自定义加载圈动画效果
      这篇文章给大家介绍Android中怎么自定义加载圈动画效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体代码如下:package blog.csdn.net.mchenys.myanimationload...
      99+
      2023-05-30
      android
    • css如何实现一直旋转动画效果
      本篇内容主要讲解“css如何实现一直旋转动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css如何实现一直旋转动画效果”吧! ...
      99+
      2022-10-19
    • css3如何实现旋转缩放动画效果
      这篇文章主要介绍了css3如何实现旋转缩放动画效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 方法:1、利用...
      99+
      2022-10-19
    • css3如何实现放大旋转动画效果
      这篇文章主要介绍“css3如何实现放大旋转动画效果”,在日常操作中,相信很多人在css3如何实现放大旋转动画效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css3如何实现...
      99+
      2022-10-19
    • Android自定义View仿微博运动积分动画效果
      自定义View一直是自己的短板,趁着公司项目不紧张的时候,多加强这方面的练习。这一系列文章主要记录自己在自定义View的学习过程中的心得与体会。 刷微博的时候,发现微博运动界面...
      99+
      2022-06-06
      view 运动 动画 Android
    • Android如何自定义带动画的半圆环型进度效果
      小编给大家分享一下Android如何自定义带动画的半圆环型进度效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下package com.ne...
      99+
      2023-05-31
      android
    • Android自定义View 实现水波纹动画引导效果
      一、实现效果图 二、实现代码 1.自定义view package com.czhappy.showintroduce.view; import android.conten...
      99+
      2022-06-06
      view 动画 Android
    • Android自定义view实现阻尼效果的加载动画
      效果: 需要知识: 1. 二次贝塞尔曲线 2. 动画知识 3. 基础自定义view知识 先来解释下什么叫阻尼运动 阻尼振动是指,由于振动系统受到摩擦和介质阻力或其他能耗而使振...
      99+
      2022-06-06
      view 动画 Android
    • Android如何自定义按钮效果
      安卓原生的按钮是多么丑,效果是多么单调,大家也是有目共睹的。 要做一个APP少不了使用按钮,一个好看的按钮少不了好看的效果和外表,这次主要跟大家讲讲如何用drawable的x...
      99+
      2022-06-06
      自定义 按钮 Android
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作