【Kotlin】使用 ProgressBar 的样式属性来实现圆形进度条,进度使用gradient渐变效果

这篇具有很好参考价值的文章主要介绍了【Kotlin】使用 ProgressBar 的样式属性来实现圆形进度条,进度使用gradient渐变效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android ProgressBar 默认提供了水平和圆形两种进度条,水平进度条通过 ProgressBar 控件实现,而圆形进度条通过 ProgressDialog 控件实现。如果想要将 ProgressBar 控件设置为圆形进度条,可以使用 ProgressBar 的样式属性来实现。

首先,在布局文件中添加一个 ProgressBar 控件,并设置其样式为 @style/Widget.AppCompat.ProgressBar

<ProgressBar
    android:id="@+id/progressBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/Widget.AppCompat.ProgressBar"
    android:indeterminate="true" />

在上面的代码中,我们设置了 ProgressBar 的样式为 @style/Widget.AppCompat.ProgressBar,并将 indeterminate 属性设置为 true,表示使用不确定模式。

然后,在 styles.xml 文件中,定义一个名为 Widget.AppCompat.ProgressBar 的样式,将其父样式设置为 Widget.AppCompat.ProgressBar.Horizontal,并将其样式属性 android:indeterminateDrawable 设置为一个圆形进度条的 Drawable:

<style name="Widget.AppCompat.ProgressBar" parent="Widget.AppCompat.ProgressBar.Horizontal">
    <item name="android:indeterminateDrawable">@drawable/circular_progress_bar</item>
</style>

在上面的代码中,我们定义了一个名为 Widget.AppCompat.ProgressBar 的样式,将其父样式设置为 Widget.AppCompat.ProgressBar.Horizontal,并将其样式属性 android:indeterminateDrawable 设置为一个圆形进度条的 Drawable。

最后,在 drawable 文件夹中创建一个名为 circular_progress_bar.xml 的 Drawable 文件,其中定义一个圆形进度条的形状和颜色:

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="360" >

    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="8"
        android:useLevel="true" >

        <size
            android:width="48dp"
            android:height="48dp" />

        <gradient
            android:centerColor="#ff0000"
            android:endColor="#00ff00"
            android:startColor="#0000ff"
            android:type="sweep"
            android:useLevel="false" />
    </shape>

</rotate>

在上面的代码中,我们首先使用 <rotate> 标签将圆形进度条旋转了 360 度,然后使用 <shape> 标签定义了一个圆环形状,并设置了其内外半径比例、厚度比例、大小等属性。最后,使用 <gradient> 标签定义圆环的颜色为一个渐变色。

运行代码后,将会显示一个圆形进度条,其颜色为一个渐变色。可以修改 circular_progress_bar.xml 文件中的颜色和大小等属性来改变进度条的外观。

设置进度

在 Kotlin 中,可以通过调用 ProgressBar 控件的 setProgress() 方法来设置进度,例如:

val progressBar = findViewById<ProgressBar>(R.id.progressBar)
progressBar.progress = 50 // 设置进度为 50

在上面的代码中,我们首先获取了一个名为 progressBarProgressBar 控件的实例,然后调用了其 setProgress() 方法,将进度设置为 50。

为了更好地控制进度条的动画效果,也可以使用 ObjectAnimator 类来实现进度条的动画效果,例如:

val progressBar = findViewById<ProgressBar>(R.id.progressBar)
val animator = ObjectAnimator.ofInt(progressBar, "progress", 0, 100)
animator.duration = 1000 // 动画持续时间为 1 秒
animator.start() // 开始动画

在上面的代码中,我们首先获取了一个名为 progressBarProgressBar 控件的实例,然后创建了一个 ObjectAnimator 对象,将其目标对象设置为 progressBar,属性名设置为 "progress",起始值为 0,结束值为 100。然后,我们设置了动画的持续时间为 1 秒,并调用了 start() 方法来启动动画。

使用 ObjectAnimator 类可以实现更加灵活的动画效果,例如设置插值器、动画监听器等。可以根据具体的需求来使用不同的动画效果。文章来源地址https://www.toymoban.com/news/detail-692919.html

到了这里,关于【Kotlin】使用 ProgressBar 的样式属性来实现圆形进度条,进度使用gradient渐变效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android自定义ProgressBar样式(Shape实现转动的圆环)

    最终效果 第一步:在drawable文件夹下新建一个xml文件叫progressbar_shape.xml,代码如下: progressbar_shape.xml 第二步:在ProgressBar中使用indeterminateDrawable属性引用上面的xml文件 你布局里的ProgressBar

    2024年02月01日
    浏览(29)
  • Android studio实现圆形进度条

    参考博客 效果图 MainActivity CircleProgressBar activity_main.xml value/attrs.xml

    2024年02月10日
    浏览(24)
  • [Android]ProgressBar进度条

    ProgressBar ProgressBar是进度条控件,ProgressBar的应用场景很多,比如用户登录时,后台发送请求,以及进行等待服务器返回信息等一些比较耗时的操作。这个时候如果没有提示,用户可能会以为程序崩溃了或手机死机了,会大大降低用户体验,所有在需要进行耗时操作的地方,添

    2024年02月15日
    浏览(30)
  • Android 之 ProgressBar (进度条)

    本节给大家带来的是Android基本UI控件中的ProgressBar(进度条),ProgressBar的应用场景很多,比如 用户登录时,后台在发请求,以及等待服务器返回信息,这个时候会用到进度条;或者当在进行一些比较 耗时的操作,需要等待一段较长的时间,这个时候如果没有提示,用户可能会

    2024年02月14日
    浏览(31)
  • 安卓进度条:ProgressBar和Seekbar

       ProgressBar 是 Android 中的一个进度条控件,用于显示正在进行的任务的进度。它可以以水平或圆形的形式展示进度,并提供了多种样式和属性来满足不同的需求。 android:progress :设置进度条的当前进度值。 android:max :设置进度条的最大值。 android:indeterminate :设置进度条是

    2024年02月09日
    浏览(28)
  • Android ProgressBar设置成横向进度条并自定义进度条颜色

    如何将ProgressBar设置成横向进度条并修改进度条颜色? 设置为横向进度条: style=\\\"@style/Widget.AppCompat.ProgressBar.Horizontal\\\" 设置进度条颜色: 自定一个文件名为progress_style_h_scene的drawable 将自定义的drawable设置到ProgressBar的android:progressDrawable属性中

    2024年02月13日
    浏览(24)
  • C++ Qt开发:ProgressBar进度条组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍 ProgressBar 进度条组件的常用方法及灵活运用。 ProgressBar(进度条)是在Qt中常用

    2024年02月04日
    浏览(30)
  • Android 基础知识4-3.7 ProgressBar(进度条)详解

    一、简介         ProgressBar(进度条)是UI界面中一种非常实用的组件,通常用于向用户像是某个耗时操作完成的百分比。进度条可动态地显示进度,因此避免长时间地执行某个操作时,让用户感觉程序失去了响应,从而更好地提高用户界面的友好性。也是为数不多的直接

    2024年02月16日
    浏览(33)
  • 【kotlin】使用MPAndroidChart实现PieChart(饼图)并设置每个数据的颜色、标签等属性

    MPAndroidChart 是 Android 上一个非常流行的开源图表库,它提供了多种类型的图表,包括折线图、柱状图、饼图等。 下面是一个使用 MPAndroidChart 实现饼图的示例代码: 首先,需要在项目的 build.gradle 文件中添加 MPAndroidChart 的依赖: 然后,在布局文件中添加一个 PieChart 控件: 在

    2024年02月10日
    浏览(25)
  • 前端使用scale属性结合CSS动态样式实现动态的图片缩放效果

    废话不多说,直接上代码: 示例一,使用css动态样式结合scale进行src图片的缩放。 示例二,使用css动态样式结合scale进行background背景图图片的缩放。

    2024年01月15日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包