android 進度條_Android ProgressBar 反向進度條/進度條從右到左走
最近的項目,有個需求需要使用條狀圖顯示比例,並且右對齊,見下圖:
我想到了使用進度條,這樣不就不需要在代碼動態繪制條狀了,省了很多活。
那麼進度條怎樣從右向左顯示呢?
方案一:
將ProgressBar的前背景反著用,將前景色設置為和整個大背景同一色,將背景設置為你要的條狀圖顏色,這樣就看不出實際的進度,看到的是進度背景,在視覺上看上去就是右對齊了。實際上還是原來那個進度條。
缺點:我這個進度條是放在ListView的item中的,點擊listview,因為listview有選中的背景顯示出來,這樣ProgressBar的前景色就原形畢露了。
方案二:
重寫ProgressBar的onDraw函數,通過旋轉畫布(Canvas)180度,達到自右至左的進度效果。這個方案理論上可行,網上有人旋轉了90度,是可以的,參考地址:
http://www.xprogrammer.com/234.html
http://www.verydemo.com/demo_c131_i3507.html
關鍵代碼:
@Override
protected synchronized void onDraw(Canvas canvas) {
switch (curr_mode)
{
case MODE_BOTTOM:
canvas.rotate(-90);
canvas.translate(-canvas.getHeight(), 0);
super.onDraw(canvas);
break;
case MODE_TOP:
canvas.rotate(90,canvas.getWidth(),0);
canvas.translate(10,0);
super.onDraw(canvas);
break;
}
此方案缺點:需要計算旋轉中心點,比較復雜,由於對canvas旋轉不熟,我最終沒能旋轉180度成功,哪位大神搞定了告訴我一聲,共同學習
方案三:
此方案是最優方案,簡單高效!利用Drawable本身的屬性,反向繪制進度條。這裡將backgroud注釋掉,不顯示backgroud,然後對前景色加上兩個關鍵屬性:android:clipOrientation=horizontal,android:gravity=right,這樣就能做到從右到左畫進度條。
android:clipOrientation=[horizontal | vertical]
android:gravity=[top | bottom | left | right | center_vertical |
fill_vertical | center_horizontal | fill_horizontal |
center | fill | clip_vertical | clip_horizontal] />
把對象放到容器的右邊,不改變它的尺寸。當clipOrientation被設置為horizontal時,會在可繪制資源的左邊進行裁剪。
android 進度條_Android ProgressBar 反向進度條/進度條從右到左走相关推荐
- Android ProgressBar 反向进度条/进度条从右到左走
近期的项目,有个需求须要使用条状图显示比例,而且右对齐,见下图: 我想到了使用进度条,这样不就不须要在代码动态绘制条状了,省了非常多活. 那么进度条如何从右向左显示呢? 方案一: 将ProgressB ...
- android 反向进度条,Android ProgressBar 反向进度条/进度条从右到左走
最近的项目,有个需求需要使用条状图显示比例,并且右对齐,见下图: 我想到了使用进度条,这样不就不需要在代码动态绘制条状了,省了很多活. 那么进度条怎样从右向左显示呢? 方案一: 将ProgressBa ...
- 安卓开发——ProgressBar反向进度条(进度条从右向左走)
使用drawable资源文件,通过设置android:clipOrientation="horizontal",android:gravity="right"这 ...
- Android反向进度条(ProgressBar)的实现——从右到左的进度条
Android反向进度条(ProgressBar)--从右到左的进度条 前言: 最近在项目中需要使用到反向进度条,在网上查了些资料,感觉对自己作用不大,于是自定义样式,实现了反向进度条. 1. 第一步 ...
- Android 原生控件之三 ProgressBar
Android 原生控件之三 ProgressBar 相关 来源 开始 不确定的进度 确定的进度 XML属性 1.android:animationResolution 2.android:indet ...
- android仿微博头像_Android 仿instagram和微博的头像点击加载动画
ins.gif 对,就是转圈圈的这个,这么酷炫,我也要做一个!在整理代码和总结时候,神奇的事情发生了,在我日常刷微博的时候点开微博客户端时候突然发现: weibo.gif 缘分啊,发现了微博Andro ...
- Android 各种自定义进度条Progressbar
Android 自定义进度条 Progressbar 控件集合 关于我,欢迎关注 博客:ccapton(http://blog.csdn.net/ccapton) 微信:Ccapton Github ...
- Android银弧刀之ProgressBar之最炫民族风
传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 银弧刀 陆无双抬起头来,只见四名乞丐,一字排在门外,或高或 ...
- [置顶] Android银弧刀之ProgressBar之最炫民族风
传送门 ☞ RatingBar之评委请亮分 传送门 ☞ SeekBar之双管齐下 银弧刀 陆无双抬起头来,只见四名乞丐,一字排在门外,或高或矮,一齐望着自己.她曾用银弧刀伤了一个乞丐 ...
最新文章
- date 的基本使用 suse
- 记:第一次更新服务器CUDA和GPU驱动
- [html] 使用canvas制作一个印章
- arm nodejs_英伟达打算收购Arm,或将成有史以来最大半导体收购案
- transaction缩写为什么是tx_TX Transaction locks常见的4种情况
- 组件cdn引入_高性能 React UI组件库SHINEOUT
- Struts2 标签库 控制标签的使用 if append generator iterator merage sort subset
- Log4J发日志邮件给多个接收者及标题、正文乱码问题
- cad道路里程桩号标注_甲级设计院CAD制图技巧与画法讲解! 超实用,值得你收藏~...
- 用C语言写个sin和cos程序,C语言sin和cos函数的实现
- pomelo之master服务器的启动
- iDo网站在线设计系统的原理
- 《药学综合知识与技能》
- 数组名 和数组名的理解
- JQuery判断一个元素是否含有子元素
- CAFFE-SSD中loss、accuracy曲线可视化(双Y轴)
- 寄存器(R0~R16)以及从SysTick系统时钟理解RTOS移植初始化
- 影视后期制作非编系统(一)
- Windnd模块接口
- 蜀门锻造系统c语言原理,蜀门系统装备锻造成功的原理解析 增加锻造成功率心得分享...
热门文章
- Linux使用Android的USB共享网络
- 樱花庄的宠物女孩AtCoder Grand Contest 015E - Mr.Aoki Incubator
- WIN10宽带连接秒断解决办法
- 如何看待阿里云要做“全球产业AI的拓荒者”?
- [置顶]《游戏引擎架构》信息总汇
- Vmware安装迷你版的 Centos6 并配置 Nat 模式可访问外网
- 遥感图像辐射增强ERDAS实现
- java定义一个方法计算三角形,长方形,圆形面积和周长
- transporter上传卡正在交付_Transporter上传卡在—正在验证 APP
- 黑马程序员_困兽之斗