实现进度条自增长及渐变样式

实现水平进度条的自增长及渐变样式
话不多说,上效果图
实现进度条自增长及渐变样式_第1张图片
过程十分容易,望诸君都能学会!
上代码
activity_main.xml


<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"
    tools:context=".MainActivity">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="实现进度条自增长"
            android:textSize="50dp" />
    LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <ProgressBar
            android:id="@+id/progressBar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="wrap_content"
            android:layout_height="72dp"
            android:layout_weight="1"
            android:max="100"
            android:progress="0"
            android:progressDrawable="@drawable/jdt" />
    LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="当前进度条值为:"
            android:textSize="50dp" />
    LinearLayout>
LinearLayout>

在UI界面上先设立一个水平的进度条和用于显示进度条值的TextView组件
代码LinearLayout中的weight用于显示比例
代码中水平进度条的 progressDrawable 用于设置进度条的渐变

MainActivity.java

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ProgressBar;
import android.widget.TextView;

import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {
     
    ProgressBar progressBar;
    int i=0;//用于显示进度条的增长
    TextView textView;//显示当前进度条的值

    @Override
    protected void onCreate(Bundle savedInstanceState) {
     
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        progressBar=findViewById(R.id.progressBar);//带入
        textView=findViewById(R.id.textView2);//带入
        final Timer timer=new Timer();//实例化,设置计时器
        timer.schedule(new TimerTask() {
     
            @Override
            public void run() {
     
                runOnUiThread(new Runnable() {
     
                    @Override
                    public void run() {
     
                        i++;//自增长
                        textView.setText("当前进度条值为:"+i+"%");//用于显示当前进度条的值
            if(i==100){
     
                timer.cancel();//当i=100时停止
            }else{
     
                progressBar.setProgress(i);//否则随着i自增长
            }
                    }
                });
            }
        },100,100);//1秒循环一次
    }
}

代码中已详细的注释了,如果还有什么疑问可以提出来,欢迎解答
最后设置进度条渐变
首先在drawable中新建
实现进度条自增长及渐变样式_第2张图片
上代码
jdt.xml


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/progress">
        <clip>
            <shape>
                <corners android:radius="5dp"/>
                <gradient android:angle="0"
                    android:startColor="#33A72B"
                    android:endColor="#2C4EAD"/>
            shape>
        clip>
    item>

layer-list>

shape设置形状
corners是设置半径
gradient是设置角度意思
后面分别跟随的是起始颜色和结束颜色
祝好!

你可能感兴趣的:(android初步进阶,android,android,studio)