进度条与拖动条的使用学习(代码片段)

xiaofengzai xiaofengzai     2023-04-23     501

关键词:

(一)进度条

常用属性详解:

android:max:进度条的最大值
android:progress:进度条已完成进度值
android:progressDrawable:设置轨道对应的Drawable对象
android:indeterminate:如果设置成true,则进度条不精确显示进度
android:indeterminateDrawable:设置不显示进度的进度条的Drawable对象
android:indeterminateDuration:设置不精确显示进度的持续时间
android:secondaryProgress:二级进度条,类似于视频播放的一条是当前播放进度,一条是缓冲进度,前者通过progress属性进行设置!


对应的再Java中我们可调用下述方法:

getMax():返回这个进度条的范围的上限
getProgress():返回进度
getSecondaryProgress():返回次要进度
incrementProgressBy(int diff):指定增加的进度
isIndeterminate():指示进度条是否在不确定模式下
setIndeterminate(boolean indeterminate):设置不确定模式下

style:

@android:style/Widget.ProgressBar.Small

@android:style/Widget.ProgressBar.Large

@android:style/Widget.ProgressBar.Horizontal(水平进度条)

 

在布局文件中加上一个ProgressBar,设置它的id和style样式和进度条的最大值

接下来就是主程序代码来控制进度条的移动

package com.example.progressbar;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.WindowManager;
import android.widget.ProgressBar;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity 
    private ProgressBar progressBar;
    private int mProgress=0;
    private Handler mHanler;//消息处理对象
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏显示
        progressBar=(ProgressBar)findViewById(R.id.progressbar);
        mHanler=new Handler()
            @Override
            public void handleMessage(@NonNull Message msg) 
                if(msg.what==0x111)
                    progressBar.setProgress(mProgress);
                else
                    Toast.makeText(MainActivity.this,"耗时完成",Toast.LENGTH_SHORT).show();
                    progressBar.setVisibility(View.GONE);
                
            
        ;
        new Thread(new Runnable() 
            @Override
            public void run() 
                while(true)
                    mProgress=doWork();
                    Message m=new Message();

                    if(mProgress<100)
                    
                        m.what=0x111;
                        mHanler.sendMessage(m);
                    else
                        m.what=0x110;
                        mHanler.sendMessage(m);
                        break;
                    
                
            
            private int doWork()
                mProgress+=Math.random()*10;
                try 
                    Thread.sleep(200);
                 catch (InterruptedException e) 
                    e.printStackTrace();
                
                return mProgress;
            
        ).start();
    

程序截图:

技术图片

 

 (二)拖动条SeekBar

常用属性:

android:max=”100” //滑动条的最大值

android:progress=”60” //滑动条的当前值

android:secondaryProgress=”70” //二级滑动条的进度

android:thumb = “@mipmap/sb_icon” //滑块的drawable

接着要说下SeekBar的事件了,SeekBar.OnSeekBarChangeListener 我们只需重写三个对应的方法:

onProgressChanged:进度发生改变时会触发

onStartTrackingTouch:按住SeekBar时会触发

onStopTrackingTouch:放开SeekBar时触发

 在布局界面上放置一个seekbar,并设置id,最大数和当前进度

在主程序中获取seekbar变量,并且设置监听器,来控制拖动的改变

package com.example.seekbar;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity 
    private SeekBar seekBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        seekBar=(SeekBar)findViewById(R.id.seekBar);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() 
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) 
                Toast.makeText(MainActivity.this,"进度改变",Toast.LENGTH_SHORT).show();
            

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) 
                Toast.makeText(MainActivity.this,"开始触摸",Toast.LENGTH_SHORT).show();
            

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) 
                Toast.makeText(MainActivity.this,"停止触摸",Toast.LENGTH_SHORT).show();
            
        );
    

截图:

技术图片

 

csharp#004#进度条与timer(代码片段)

  C#实现进度条异常简单,因为所有东西都已经封装好了。只需要简单的拖拽:写两行代码就完工了:privatevoidtimer1_Tick(objectsender,EventArgse)progressBar1.Value+=1;if(progressBar1.Value==100)progressBar1.Value=0;  查看详情

lvglv8学习笔记|09-进度条控件的使用方法(bar)(代码片段)

文章目录一、进度条控件1.创建bar对象2.修改进度条大小3.获取进度条的值4.设置进度条的值二、bar控件的样式1.bar控件的组成部分2.修改bar控件的样式三、bar控件的事件处理1.绘制完成事件一、进度条控件bar对象的API在lv_bar.h中声... 查看详情

lvglv8学习笔记|09-进度条控件的使用方法(bar)(代码片段)

文章目录一、进度条控件1.创建bar对象2.修改进度条大小3.获取进度条的值4.设置进度条的值二、bar控件的样式1.bar控件的组成部分2.修改bar控件的样式三、bar控件的事件处理1.绘制完成事件一、进度条控件bar对象的API在lv_bar.h中声... 查看详情

lvglv8学习笔记|09-进度条控件的使用方法(bar)(代码片段)

文章目录一、进度条控件1.创建bar对象2.修改进度条大小3.获取进度条的值4.设置进度条的值二、bar控件的样式1.bar控件的组成部分2.修改bar控件的样式三、bar控件的事件处理1.绘制完成事件一、进度条控件bar对象的API在lv_bar.h中声... 查看详情

制作进度条(uislider)

怎样判断是否应当使用进度条  用进度条的主要目的是为了用一根管子的充满程度来直观地表示某种数值的百分比,进度条分为可拖动和不可拖动两种。  可拖动进度条和不可拖动进度条的原理几乎是一模一样,唯一的区别... 查看详情

在vue项目中使用进度条的实现(代码片段)

下载npminstallnprogress--save 基本用法Nprogress.start()Nprogress.start().done() (我在拦截器直接引入)importaxiosfrom'axios'importstorefrom"../store/index"//引入nprogressimportNprogressfrom 查看详情

jqueryui组件progressbar进度条的简单使用(代码片段)

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>datepickers</title><metacharset="utf-8"><linkrel="stylesheet"href="http://code.jquery.com/ui 查看详情

#进度条的制作(代码片段)

importtimeforiinrange(100):sys.stdout.write("#")#在屏幕上输出#time.sleep(0.1)sys.stdout.flush()#刷新功能 查看详情

html设计进度条的样式(代码片段)

查看详情

第七章文本进度条的实现(代码片段)

文本进度条大家都见过程加载的时候的文本进度条进度条的原理是什么呢?1、采用字符串方式打印可以动态变化的文本进度条2、进度条需要能在一行中逐渐变化问题分析:如何获取一个文本进度条的变化时间呢?1、采用sleep()... 查看详情

渐变色进度条的两种绘制方案(代码片段)

在App开发中经常会用到渐变色进度条控件,而自定义进度条的实现也不难,下面提供了两种渐变色进度条的实现方案。 效果图如下: 第一种实现方案:使用图层layer实现层级结构如图所示: 构建过程如下: 1.创... 查看详情

进度条的美化(代码片段)

这里记录一种用css控制进度条美化的效果css代码:@-webkit-keyframesprogress-bar-stripesfrombackground-position:40px0tobackground-position:00@-moz-keyframesprogress-bar-stripesfrombackground-position:40px0tobackgro 查看详情

qt学习笔记——①进度条可拖动点击②有暂停按钮的视频播放器(代码片段)

一、配置文件更改用到多媒体的话,需要修改配置文件的第一行,后面加一句sqlmultimediamultimediawidgets修改后的配置文件前3行如下QT+=coreguisqlmultimediamultimediawidgets//下面都不用改greaterThan(QT_MAJOR_VERSION,4):QT+=widgetsC 查看详情

活动到片段方法调用带有进度条的线程(代码片段)

我正在使用此代码,一切正常,但进度条没有显示。我想在方法实现期间阻止我的ui并想显示进度条。我想获得像progressDialog这样的行为。这是我的方法publicvoideffct(inteffectNo)finalintfinalEffectNO=effectNo;getWindow().setFlags(WindowManager.LayoutP... 查看详情

带进度条的tkinter链接按钮(代码片段)

...er创建一个cookieclicker应用程序。我想在我的程序中有一个进度条,每次点击cookie100次就会填满。我使用importttk创建了进度条,但是每当按下按钮时我都不知道如何更新进度条。到目前为止,这是我的代码:fromTkinterimport*fromTkinteri... 查看详情

android自定义进度值可拖动的seekbar(代码片段)

...f0c;需求是这样的,seekbar需要显示最左和最右值,进度要跟随进度块移动。看下效果图就明白了。其实实现起来很简单,主要是思路。自定义控件的话也不难,之前我的博客也有专门介绍,这里就不再多说。实... 查看详情

c#上位机开发——多线程+进度条的使用(代码片段)

1.界面设计2.使用多线程修改进度条引入多线程类库命名空间:usingSystem.Threading;将变量添加到Form1类:privateThreadth;将方法添加到Form1类:privatevoidThreadTask()intstp;intnewval;Randomrnd=newRandom();while(true)stp=this.progressBar1.Step... 查看详情

c#上位机开发——多线程+进度条的使用(代码片段)

1.界面设计2.使用多线程修改进度条引入多线程类库命名空间:usingSystem.Threading;将变量添加到Form1类:privateThreadth;将方法添加到Form1类:privatevoidThreadTask()intstp;intnewval;Randomrnd=newRandom();while(true)stp=this.progressBar1.Step... 查看详情