`
gryphone
  • 浏览: 433499 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

ProgressBar 等比例

阅读更多

ProgressBar 等比例

 

优点:任务完成 其也正好到达终点

 

 

缺点:需要知道以下变量取值:

 

1. ProgressBar.max()

 

2. 任务所需总长度

 

3. 更新时 任务的完成值

 

 

 

整个代码 或是 思路 都比较简单 直接上代码 有问题或其他 请跟帖

 

 

1. main.xml 2个ProgressBar

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/progress1"  
	android:max="100"
	style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:paddingTop="100dip"
    />
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/progress2"  
	android:max="30"
	style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="100dip" 
    android:layout_height="wrap_content" 
    android:paddingTop="100dip"
    />
</LinearLayout>

 

 

 

 

2. ProgressUsage.java

 

 

public class ProgressUsage extends Activity {
	ProgressBar pBar1,pBar2;
	Handler handler = new Handler();
	
	MediaPlayer mp;
	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        pBar1 = (ProgressBar)findViewById(R.id.progress1);
        pBar2 = (ProgressBar)findViewById(R.id.progress2);
        
        mp = new MediaPlayer();
        AssetFileDescriptor  fd = getResources().openRawResourceFd(R.raw.audio);   
                   
        try {
			mp.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getLength());
			
			fd.close(); 
			
			mp.prepare();   
	        mp.start();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}   
                       
		startProgressUpdate();              
    }
    
    public void startProgressUpdate(){
    	Runnable update = new Runnable(){
			@Override
			public void run() {
				// TODO Auto-generated method stub
				int position = mp.getCurrentPosition();
				int duration = mp.getDuration();
				
				int max1 = pBar1.getMax();
				int max2 = pBar2.getMax();
				
				//等比例取值
				int i1 = max1 * position/duration;
				int i2 = max2 * position/duration;
				
				pBar1.setProgress(i1);
				pBar2.setProgress(i2);
				
				startProgressUpdate();
			}
    		
    	};
    	
    	handler.postDelayed(update, 10);
    }
}

 

 

 

3. emulator 运行截图: 注意2ProgressBar 虽然刷新频率一样 但是刷新长度不等

 

 

 

分享到:
评论

相关推荐

    c#平滑可变颜色显示百分比的Progressbar

    c#自定义控件,平滑,可改变颜色 同时显示百分比

    ProgressBar控件的用法

    - 在文件上传或下载过程中,可以通过计算已完成部分与总大小的比例,动态更新`Value`属性,以反映进度。 - 在循环执行大量任务时,每次任务完成后调用`Increment()`,让用户了解程序执行的进度。 6. **编程示例**...

    ProgressBar的几个小样及自定义圆形ProgressBar半径大小 .

    自定义ProgressBar通常涉及到修改其颜色、尺寸、形状等。可以通过设置`android:progressDrawable`和`android:indeterminateDrawable`属性来替换默认的绘制对象。例如,你可以创建一个XML文件在`res/drawable`目录下...

    带自定义文本的ProgressBar

    在本案例中,我们关注的是一个特殊类型的`ProgressBar`,它不仅显示进度条,还在其上方附加了比例数的文本,且这个文本会随着进度条颜色的变化而变化,提供更直观的用户反馈。 首先,让我们来了解`ProgressBar`的...

    C# winform 进度条 ProgressBar 带进度显示

    可以通过属性窗口设置控件的基本属性,如Name(如`progressBar1`)、Width、Height等。 2. **设置属性**:设置`Minimum`和`Maximum`属性以定义进度条的范围。默认情况下,最小值是0,最大值是100,但可以根据需要...

    圆形ProgressBar

    `ProgressBar`是Android系统提供的一个标准组件,用于展示进度,通常在数据加载、文件下载或任务执行等耗时操作中使用。默认的`ProgressBar`有两种样式:水平和垂直。而这里的"圆形ProgressBar"则是一种特殊形态,它...

    WPF圆形ProgressBar

    ControlTemplate允许开发者完全自定义控件的布局和视觉状态,包括其形状、颜色、动画等。对于圆形ProgressBar,ControlTemplate会包含一个圆形路径(Path)或者椭圆(Ellipse),并根据进度值动态调整填充部分。 ...

    安卓 自定义圆环ProgressBar

    开发者可以通过调整填充部分的长度来显示不同比例的进度。这种设计与传统的线性进度条(如水平条或垂直条)相比,更具有视觉吸引力,而且可以适应各种屏幕尺寸,因为它的形状是相对的,而不是绝对的像素值。 "可以...

    自定义水平progressbar

    - 在自定义View中重写`onDraw()`方法,直接在Canvas上绘制进度条,实现复杂的效果,如动态效果、渐变色等。 - 可能需要覆盖`measure()`和`layout()`方法,确保自定义View的大小和位置正确。 4. **编程动态更新**...

    Android自定义带箭头的Progressbar

    这通常需要对当前进度值进行比例转换,以确定在画布上的像素坐标。 4. **动画支持**:为了实现箭头随着进度跑动的效果,可以使用Android的ValueAnimator或ObjectAnimator。设置动画的时间、起始值和结束值,然后在...

    android 的progressbar教程

    ProgressBar是Android SDK中的一个视图组件,用于表示一个操作的进度,比如数据加载、文件下载等。它有两种主要类型:LinearProgressBar(线性进度条)和CircularProgressBar(圆形进度条)。 2. **添加...

    ProgressBar

    通过两者的比例,我们可以计算出进度并更新ProgressBar。 6. **动画效果** 为了提升用户体验,常常会加入动画效果,如平滑过渡。这可以通过CSS的`transition`属性实现,如上述CSS代码所示。 7. **自定义功能** ...

    C#源码在ProgressBar控件中显示进度百分比.zip

    在上述代码中,我们计算当前进度(基于已读取的字节数与总字节数的比例),并将结果设置为进度条的Value属性。这将导致进度条显示相应的百分比。 为了实时更新进度,我们需要在读取文件的过程中调用此方法。假设你...

    小程序源码 ProgressBar 几乎全部的用法.rar

    ProgressBar是小程序中一种显示进度条的控件,常用于展示任务、加载、缓冲等过程的进度。 【描述解析】 描述中的"小程序源码 ProgressBar 几乎全部的用法.rar"与标题相呼应,强调了这个压缩包包含的内容是对...

    android ProgressBar扫描SD卡文件

    在Android开发中,ProgressBar是一个非常重要的组件,它...在实际开发中,应确保代码的健壮性和用户体验,例如处理可能的异常情况,提供取消操作等。希望这个教程对你理解如何在Android应用中使用ProgressBar有所帮助。

    ProgressBar长方形进度条,item背景当进度条

    这种自定义的进度条不仅可以用于表示加载进度,还可以用于显示用户完成的任务比例,或者任何其他需要展示进度的情况。在实际应用中,还可以根据设计需求调整尺寸、颜色、圆角等属性,以达到最佳的视觉效果。

    progressbar源码修改(支持进度条样式设置)

    在IT行业中,progressbar是用于显示任务进度的一种常见图形元素,特别是在命令行界面或者GUI应用程序中。这个主题涉及的是对默认的progressbar源码进行修改,以支持更丰富的样式设置,从而提高用户体验。通常,一个...

    弹出窗口显示ProgressBar控制后台任务进度

    在Windows Forms应用开发中,有时候我们需要执行一些耗时的操作,比如数据加载、文件处理等,这时为了提升用户体验,我们可以使用ProgressBar控件来显示后台任务的进度。本文将详细讲解如何利用Timer和Thread两种...

    XpProgressBar代码

    【XpProgressBar代码】是一个基于C#编程语言实现的Windows XP风格的ProgressBar控件。...通过深入研究,你不仅可以了解ProgressBar的实现细节,还可以学习到控件设计、图形绘制和性能优化等多个方面的知识。

    progressbar.zip

    在IT行业中,进度条(ProgressBar)是一个非常常见的用户界面组件,尤其在进行长时间操作时,如文件上传、下载或后台处理等,它为用户提供了一种可视化反馈,展示任务的完成状态。"progressbar.zip"可能是一个包含...

Global site tag (gtag.js) - Google Analytics