最近的項目,有個需求需要使用條狀圖顯示比例,並且右對齊,見下圖:

我想到了使用進度條,這樣不就不需要在代碼動態繪制條狀了,省了很多活。

那麼進度條怎樣從右向左顯示呢?

方案一:

將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 反向進度條/進度條從右到左走相关推荐

  1. Android ProgressBar 反向进度条/进度条从右到左走

    近期的项目,有个需求须要使用条状图显示比例,而且右对齐,见下图: 我想到了使用进度条,这样不就不须要在代码动态绘制条状了,省了非常多活. 那么进度条如何从右向左显示呢? 方案一: 将ProgressB ...

  2. android 反向进度条,Android ProgressBar 反向进度条/进度条从右到左走

    最近的项目,有个需求需要使用条状图显示比例,并且右对齐,见下图: 我想到了使用进度条,这样不就不需要在代码动态绘制条状了,省了很多活. 那么进度条怎样从右向左显示呢? 方案一: 将ProgressBa ...

  3. 安卓开发——ProgressBar反向进度条(进度条从右向左走)

    使用drawable资源文件,通过设置android:clipOrientation="horizontal",android:gravity="right"这 ...

  4. Android反向进度条(ProgressBar)的实现——从右到左的进度条

    Android反向进度条(ProgressBar)--从右到左的进度条 前言: 最近在项目中需要使用到反向进度条,在网上查了些资料,感觉对自己作用不大,于是自定义样式,实现了反向进度条. 1. 第一步 ...

  5. Android 原生控件之三 ProgressBar

    Android 原生控件之三 ProgressBar 相关 来源 开始 不确定的进度 确定的进度 XML属性 1.android:animationResolution 2.android:indet ...

  6. android仿微博头像_Android 仿instagram和微博的头像点击加载动画

    ins.gif 对,就是转圈圈的这个,这么酷炫,我也要做一个!在整理代码和总结时候,神奇的事情发生了,在我日常刷微博的时候点开微博客户端时候突然发现: weibo.gif 缘分啊,发现了微博Andro ...

  7. Android 各种自定义进度条Progressbar

    Android 自定义进度条 Progressbar 控件集合 关于我,欢迎关注 博客:ccapton(http://blog.csdn.net/ccapton) 微信:Ccapton Github ...

  8. Android银弧刀之ProgressBar之最炫民族风

    传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 银弧刀          陆无双抬起头来,只见四名乞丐,一字排在门外,或高或 ...

  9. [置顶] Android银弧刀之ProgressBar之最炫民族风

    传送门 ☞ RatingBar之评委请亮分 传送门 ☞ SeekBar之双管齐下 银弧刀          陆无双抬起头来,只见四名乞丐,一字排在门外,或高或矮,一齐望着自己.她曾用银弧刀伤了一个乞丐 ...

最新文章

  1. date 的基本使用 suse
  2. 记:第一次更新服务器CUDA和GPU驱动
  3. [html] 使用canvas制作一个印章
  4. arm nodejs_英伟达打算收购Arm,或将成有史以来最大半导体收购案
  5. transaction缩写为什么是tx_TX Transaction locks常见的4种情况
  6. 组件cdn引入_高性能 React UI组件库SHINEOUT
  7. Struts2 标签库 控制标签的使用 if append generator iterator merage sort subset
  8. Log4J发日志邮件给多个接收者及标题、正文乱码问题
  9. cad道路里程桩号标注_甲级设计院CAD制图技巧与画法讲解! 超实用,值得你收藏~...
  10. 用C语言写个sin和cos程序,C语言sin和cos函数的实现
  11. pomelo之master服务器的启动
  12. iDo网站在线设计系统的原理
  13. 《药学综合知识与技能》
  14. 数组名 和数组名的理解
  15. JQuery判断一个元素是否含有子元素
  16. CAFFE-SSD中loss、accuracy曲线可视化(双Y轴)
  17. 寄存器(R0~R16)以及从SysTick系统时钟理解RTOS移植初始化
  18. 影视后期制作非编系统(一)
  19. Windnd模块接口
  20. 蜀门锻造系统c语言原理,蜀门系统装备锻造成功的原理解析 增加锻造成功率心得分享...

热门文章

  1. Linux使用Android的USB共享网络
  2. 樱花庄的宠物女孩AtCoder Grand Contest 015E - Mr.Aoki Incubator
  3. WIN10宽带连接秒断解决办法
  4. 如何看待阿里云要做“全球产业AI的拓荒者”?
  5. [置顶]《游戏引擎架构》信息总汇
  6. Vmware安装迷你版的 Centos6 并配置 Nat 模式可访问外网
  7. 遥感图像辐射增强ERDAS实现
  8. java定义一个方法计算三角形,长方形,圆形面积和周长
  9. transporter上传卡正在交付_Transporter上传卡在—正在验证 APP
  10. 黑马程序员_困兽之斗