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#自定义控件,平滑,可改变颜色 同时显示百分比
- 在文件上传或下载过程中,可以通过计算已完成部分与总大小的比例,动态更新`Value`属性,以反映进度。 - 在循环执行大量任务时,每次任务完成后调用`Increment()`,让用户了解程序执行的进度。 6. **编程示例**...
自定义ProgressBar通常涉及到修改其颜色、尺寸、形状等。可以通过设置`android:progressDrawable`和`android:indeterminateDrawable`属性来替换默认的绘制对象。例如,你可以创建一个XML文件在`res/drawable`目录下...
在本案例中,我们关注的是一个特殊类型的`ProgressBar`,它不仅显示进度条,还在其上方附加了比例数的文本,且这个文本会随着进度条颜色的变化而变化,提供更直观的用户反馈。 首先,让我们来了解`ProgressBar`的...
可以通过属性窗口设置控件的基本属性,如Name(如`progressBar1`)、Width、Height等。 2. **设置属性**:设置`Minimum`和`Maximum`属性以定义进度条的范围。默认情况下,最小值是0,最大值是100,但可以根据需要...
`ProgressBar`是Android系统提供的一个标准组件,用于展示进度,通常在数据加载、文件下载或任务执行等耗时操作中使用。默认的`ProgressBar`有两种样式:水平和垂直。而这里的"圆形ProgressBar"则是一种特殊形态,它...
ControlTemplate允许开发者完全自定义控件的布局和视觉状态,包括其形状、颜色、动画等。对于圆形ProgressBar,ControlTemplate会包含一个圆形路径(Path)或者椭圆(Ellipse),并根据进度值动态调整填充部分。 ...
开发者可以通过调整填充部分的长度来显示不同比例的进度。这种设计与传统的线性进度条(如水平条或垂直条)相比,更具有视觉吸引力,而且可以适应各种屏幕尺寸,因为它的形状是相对的,而不是绝对的像素值。 "可以...
- 在自定义View中重写`onDraw()`方法,直接在Canvas上绘制进度条,实现复杂的效果,如动态效果、渐变色等。 - 可能需要覆盖`measure()`和`layout()`方法,确保自定义View的大小和位置正确。 4. **编程动态更新**...
这通常需要对当前进度值进行比例转换,以确定在画布上的像素坐标。 4. **动画支持**:为了实现箭头随着进度跑动的效果,可以使用Android的ValueAnimator或ObjectAnimator。设置动画的时间、起始值和结束值,然后在...
ProgressBar是Android SDK中的一个视图组件,用于表示一个操作的进度,比如数据加载、文件下载等。它有两种主要类型:LinearProgressBar(线性进度条)和CircularProgressBar(圆形进度条)。 2. **添加...
通过两者的比例,我们可以计算出进度并更新ProgressBar。 6. **动画效果** 为了提升用户体验,常常会加入动画效果,如平滑过渡。这可以通过CSS的`transition`属性实现,如上述CSS代码所示。 7. **自定义功能** ...
在上述代码中,我们计算当前进度(基于已读取的字节数与总字节数的比例),并将结果设置为进度条的Value属性。这将导致进度条显示相应的百分比。 为了实时更新进度,我们需要在读取文件的过程中调用此方法。假设你...
ProgressBar是小程序中一种显示进度条的控件,常用于展示任务、加载、缓冲等过程的进度。 【描述解析】 描述中的"小程序源码 ProgressBar 几乎全部的用法.rar"与标题相呼应,强调了这个压缩包包含的内容是对...
在Android开发中,ProgressBar是一个非常重要的组件,它...在实际开发中,应确保代码的健壮性和用户体验,例如处理可能的异常情况,提供取消操作等。希望这个教程对你理解如何在Android应用中使用ProgressBar有所帮助。
这种自定义的进度条不仅可以用于表示加载进度,还可以用于显示用户完成的任务比例,或者任何其他需要展示进度的情况。在实际应用中,还可以根据设计需求调整尺寸、颜色、圆角等属性,以达到最佳的视觉效果。
在IT行业中,progressbar是用于显示任务进度的一种常见图形元素,特别是在命令行界面或者GUI应用程序中。这个主题涉及的是对默认的progressbar源码进行修改,以支持更丰富的样式设置,从而提高用户体验。通常,一个...
在Windows Forms应用开发中,有时候我们需要执行一些耗时的操作,比如数据加载、文件处理等,这时为了提升用户体验,我们可以使用ProgressBar控件来显示后台任务的进度。本文将详细讲解如何利用Timer和Thread两种...
【XpProgressBar代码】是一个基于C#编程语言实现的Windows XP风格的ProgressBar控件。...通过深入研究,你不仅可以了解ProgressBar的实现细节,还可以学习到控件设计、图形绘制和性能优化等多个方面的知识。
在IT行业中,进度条(ProgressBar)是一个非常常见的用户界面组件,尤其在进行长时间操作时,如文件上传、下载或后台处理等,它为用户提供了一种可视化反馈,展示任务的完成状态。"progressbar.zip"可能是一个包含...