androidprogressbar横向进度条动画效果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了androidprogressbar横向进度条动画效果相关的知识,希望对你有一定的参考价值。
这篇文章主要为大家展示了“android如何实现横向进度条演示效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android如何实现横向进度条演示效果”这篇文章吧。1.效果图:

2.布局说明:
1.textview显示进度条
2.ProgressBar进度条
3.进度条配置:
<ProgressBar
android:id="@+id/pb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100" />
其中:max可以手动设置,也就是你下载的内容大小,style也是
3.实例源码:
package com.zengtao.classwork;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.widget.ProgressBar;
public class MainActivity extends ActionBarActivity
private ProgressBar pb; // 进度条
private int[] randData = new int[100]; // 数组
private int index = 0; // 索引
private int mProgressStaus = 0; // 设置进度条的长度
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pb = (ProgressBar) findViewById(R.id.pb); 参考技术A 默认横向的ProgressBar不是一个黄色的进度条根据setProgress的值进行变化嘛,现在不想要那个黄色的进度条,而是想要一个有动画效果的进度条,依旧能根据setProgress变换长短。 参考技术B 横向那个进度条,大家会drawLine()和drawText()吧,那么通过getWidth()拿到控件的宽度,再通过getProgress()拿到进度,按比例控制绘制线的长短,字的位置还不是分分钟的事
QML 中的动画进度条
【中文标题】QML 中的动画进度条【英文标题】:Animated progress bar in QML 【发布时间】:2017-11-05 10:10:50 【问题描述】:我需要使用 QML Controls 2 创建如下进度条:
ProgressBar
id:progressBar
width : parent.width * 0.80
height:parent.height * 0.05
anchors.bottom:parent.bottom
anchors.bottomMargin: (parent.height * 0.03)
anchors.left:parent.left
anchors.leftMargin: (parent.width * 0.05)
value : 0.5
background: Rectangle
color: "#e6e6e6"
radius: 3
contentItem: Item
Rectangle
width: progressBar.visualPosition * parent.width
height: parent.height
radius: 2
color: "#17a81a"
gradient: Gradient
GradientStop
position: 0.0
SequentialAnimation on color
loops: Animation.Infinite
ColorAnimation from: "#14148c"; to: "#0E1533"; duration: 5000
ColorAnimation from: "#0E1533"; to: "#14148c"; duration: 5000
GradientStop
position: 1.0
SequentialAnimation on color
loops: Animation.Infinite
ColorAnimation from: "#14aaff"; to: "#437284"; duration: 5000
ColorAnimation from: "#437284"; to: "#14aaff"; duration: 5000
我从未在 QML 中使用过动画,我尝试使用上述顺序动画,从上到下进行动画处理。但我需要它从左到右制作动画。
谁能帮我实现这个目标?
【问题讨论】:
你已经尝试了什么?一些代码? @folibis 我已经添加了代码,请检查,我目前正在尝试使用顺序动画。 【参考方案1】:我认为覆盖控件的系统行为是个坏主意。 无论如何,你可以玩动画渐变。例如:
ProgressBar
id: control
anchors.centerIn: parent
value: 0
height: 20
clip: true
background: Rectangle
implicitWidth: 200
implicitHeight: 6
border.color: "#999999"
radius: 5
contentItem: Item
implicitWidth: 200
implicitHeight: 4
Rectangle
id: bar
width: control.visualPosition * parent.width
height: parent.height
radius: 5
LinearGradient
anchors.fill: bar
start: Qt.point(0, 0)
end: Qt.point(bar.width, 0)
source: bar
gradient: Gradient
GradientStop position: 0.0; color: "#17a81a"
GradientStop id: grad; position: 0.5; color: Qt.lighter("#17a81a", 2)
GradientStop position: 1.0; color: "#17a81a"
PropertyAnimation
target: grad
property: "position"
from: 0.1
to: 0.9
duration: 1000
running: true
loops: Animation.Infinite
LinearGradient
anchors.fill: bar
start: Qt.point(0, 0)
end: Qt.point(0, bar.height)
source: bar
gradient: Gradient
GradientStop position: 0.0; color: Qt.rgba(0,0,0,0)
GradientStop position: 0.5; color: Qt.rgba(1,1,1,0.3)
GradientStop position: 1.0; color: Qt.rgba(0,0,0,0.05)
PropertyAnimation
target: control
property: "value"
from: 0
to: 1
duration: 5000
running: true
loops: Animation.Infinite
【讨论】:
以上是关于androidprogressbar横向进度条动画效果的主要内容,如果未能解决你的问题,请参考以下文章