设为首页 加入收藏

TOP

Android 弧形进度条
2014-11-24 07:40:32 来源: 作者: 【 】 浏览:1
Tags:Android 弧形 进度


最初看到,自己是想自己实现,涉及到的问题就比较多,需要一些精确的计算画上去,整个屏幕的背景图是这样的:



不过在动手前,自己又百度了一些自定义进度条的文章看了一下。看了一篇受了很大的启发,这个弧形的效果完全可以用一个垂直的进度条来实现。使用这样一张图:



弧形与背景图的轨迹一样,然后整张图是长方形,不过背景是透明的,这样以后这样将android的progressbar竖直显示即可。


style=" android:attr/progressBarStyleHorizontal"
android:progressDrawable="@drawable/audioseekbar_style"
android:layout_width="49dip" android:layout_height="281dip"
android:max="100" android:layout_x="486dp" android:layout_y="142dp"
android:progress="1">


竖直显示了,下一步就是如何进度条沿竖直方向走呢?那就在audioseekbar_style中进行设置


< xml version="1.0" encoding="utf-8" >




android:gravity="top">



clip一共有四个属性,其中clipOrientation就是用来设置progress走向的,这里设置成vertical,图片就是刚才那张彩色弧形的图即可。通过这样的设置

进度条的使用还是还以前一样,在定时器里模拟了一下效果


mProgressBar = (ProgressBar)this.findViewById(R.id.disc_audio_progressbar);
mProgressBar.setProgress(0);
mAudioTimer = new UITimer(1000) {
@Override
protected void onTime() {
// TODO Auto-generated method stub
setTimeInfo(mPlayTime, mEndTime);
mPlayTime+=1000;
}
};
mAudioTimer.Start();



// 设置时间bar和info中的time信息
public void setTimeInfo(int curTime, int tolTime) {


mProgressBar.setProgress(mPlayTime);
mProgressBar.setMax(mEndTime);
//mProgressBar.setSecondaryProgress(mEndTime);
}


所以,Android UI里的很多复杂的问题,可以通过一些简单的变通实现效果。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇强大的Vim配置,让编程更随意 下一篇Shell编程检测监控MySQL的CPU占用..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Libevent C++ 高并发 (2025-12-26 00:49:30)
·C++ dll 设计接口时 (2025-12-26 00:49:28)
·透彻理解 C 语言指针 (2025-12-26 00:22:52)
·C语言指针详解 (经典 (2025-12-26 00:22:49)
·C 指针 | 菜鸟教程 (2025-12-26 00:22:46)