android的.9图片以及圆角进度条(进度条两端都是圆角)的实现

1号黑色条位置向下覆盖的区域表示图片横向拉伸时,只拉伸该区域 
2号黑色条位置向右覆盖的区域表示图片纵向拉伸时,只拉伸该区域   
3号黑色条位置向左覆盖的区域表示图片纵向显示内容的区域 
4号黑色条位置向上覆盖的区域表示图片横向显示内容的区域 
没有黑色条的位置覆盖的区域是图片拉伸时保持不变(比如,如果图片的四角为弧形的时候,当图片被任意拉伸时,四角的弧形都不会发生改变)

The Android source code uses Patch 9 files to achieve the effect:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4_r1/frameworks/base/core/res/res/drawable/progress_horizontal_holo_dark.xml/

上面的链接是android源码实现圆角矩形的xml。

例子:

在你的xml中:

<ProgressBar
    android:id="@+id/custom_progress_bar"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:indeterminateOnly="false"
    android:progressDrawable="@drawable/custom_progress_bar_horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:minHeight="13"
    android:progress="33"
    android:secondaryProgress="66" />

然后,custom_progress_bar_horizontal的实现:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background"
          android:drawable="@android:drawable/custom_progress_bg" />
    <item android:id="@android:id/secondaryProgress">
        <scale android:scaleWidth="100%"
               android:drawable="@android:drawable/custom_progress_secondary" />
    </item>
    <item android:id="@android:id/progress">
        <scale android:scaleWidth="100%"
               android:drawable="@android:drawable/custom_progress_primary" />
    </item>
</layer-list>

  

其中的item的drawable就按自己想要的效果绘制了,scale里面可以放.9图片,也可以自己使用drawable画,带圆角就行。

整个核心就是scale标签,我之前也没见过。

最后是效果图(摘于StackOverFlow:http://stackoverflow.com/questions/2078809/progress-bar-rounded-on-both-sides-in-android):

Example primary xdpi png with padding before the tool: 
Example secondary xdpi png with padding before the tool: 

And the final output: 

时间: 2024-10-10 04:03:32

android的.9图片以及圆角进度条(进度条两端都是圆角)的实现的相关文章

android异步任务图片下载(进度条提示进度)

一.AsyncTask介绍 Android提供了几种在其他线程中访问UI线程的方法. Activity.runOnUiThread( Runnable ) View.post( Runnable ) View.postDelayed( Runnable, long ) Hanlder 这些类或方法同样会使你的代码很复杂很难理解.然而当你需要实现一些很复杂的操作并需要频繁地更新UI时这会变得更糟糕. 为了解决这个问题,Android 1.5提供了一个工具类:AsyncTask,它使创建需要与用户界

Android基础入门教程——2.3.7 ProgressBar(进度条)

Android基础入门教程--2.3.7 ProgressBar(进度条) 标签(空格分隔): Android基础入门教程 本节引言: 本节给大家带来的是Android基本UI控件中的ProgressBar(进度条),ProgressBar的应用场景很多,比如 用户登录时,后台在发请求,以及等待服务器返回信息,这个时候会用到进度条:或者当在进行一些比较 耗时的操作,需要等待一段较长的时间,这个时候如果没有提示,用户可能会以为程序Carsh或者手机死机 了,这样会大大降低用户体验,所以在需要进行耗

Android零基础入门第51节:进度条ProgressBar

不知不觉这已经是第51期了,在前面50期我们学了Android开发中使用频率非常高的一些UI组件,当然这些组件还不足够完成所有APP的开发,还会经常用到一些诸如进度条.拖动条.搜索框.时间和日期选择器等组件,那么后面几期就来一起学习这些高级组件. 一.ProgressBar系列组件 ProgressBar也是一组重要的组件,ProgressBar本身代表了进度条组件,它还派生了两个常用的组件:SeekBar和RatingBar.ProgressBar及其子类在用法上十分相似,只是显示界面有一定的

Android View 之进度条+拖动条+星级评论条....

PS:将来的你会感谢现在奋斗的自己.... 学习内容: 1.进度条 2.拖动条 3.星级评论条 1.进度条...       进图条这东西想必大家是很熟悉的...为了使用户不会觉得应用程序死掉了,因此为之设置一个进度条使应用程序的运行状态更好的反馈给客户...这也就是进度条的作用...因此一般的应用程序都会加入进度条...进度条分为圆形进度条和线性的进度条...目的都是一样的,只是展示的效果是不同的...用代码讲解一下... <LinearLayout xmlns:android="htt

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

最近的项目,有个需求需要使用条状图显示比例,并且右对齐,见下图: 我想到了使用进度条,这样不就不需要在代码动态绘制条状了,省了很多活. 那么进度条怎样从右向左显示呢? 方案一: 将ProgressBar的前背景反着用,将前景色设置为和整个大背景同一色,将背景设置为你要的条状图颜色,这样就看不出实际的进度,看到的是进度背景,在视觉上看上去就是右对齐了.实际上还是原来那个进度条. 缺点:我这个进度条是放在ListView的item中的,点击listview,因为listview有选中的背景显示出来,

android 基础学习图片六progross

加载进度条应用 android 基础学习图片六progross,布布扣,bubuko.com

[Android] 对自定义图片浏览器经常内存溢出的一些优化

首先关于异步加载图片可以参见 夏安明 的博客:http://blog.csdn.net/xiaanming/article/details/9825113 这篇文章最近有了新的更改,大概看了一下,内容更完善了.而我参考他之前的代码,发现了很多与内存有关的问题,这里记录一下发现的问题和解决方法. 本文地址:http://www.cnblogs.com/rossoneri/p/4284478.html 首先上个功能图: 1.本地图片浏览器做成对话框的形式,可以显示文件夹 2. 图片支持多选 3. 图

Android基础入门教程——2.3.8 SeekBar(拖动条)

Android基础入门教程--2.3.8 SeekBar(拖动条) 标签(空格分隔): Android基础入门教程 本节引言: 本节我们继续来学习Android的基本UI控件中的拖动条--SeekBar,相信大家对他并不陌生,最常见的 地方就是音乐播放器或者视频播放器了,音量控制或者播放进度控制,都用到了这个SeekBar,我们 先来看看SeekBar的类结构,来到官方文档:SeekBar 嘿嘿,这玩意是ProgressBar的子类耶,也就是ProgressBar的属性都可以用咯! 而且他还有一

Android中用seekbar控件控制歌曲的进度

本人菜鸟一枚,在编写android中用seekbar控件控制歌曲的进度和seekbar随着歌曲的播放自动运动的程序有一些自己的见解,希望各位大牛们多多指点······ 废话先不多说了,先贴一张程序的图吧: 界面不怎么好看,没经过美化,大家将就这看一下吧. 主要思路是运用线程每隔一秒显示一下seekbar控件所在的位置,(这个是使进度条随着歌曲的进度而不断的变化,如果大家想使进度条增加的更连续,可以改变程序循环运行的时间,使其更快) 我只把关于seekbar的程度拿出来了: private int