接上一篇,我们来处理一下微博中的图片部分。
前文中我们利用WebView来处理URL中的图片显示,并且基本能达到目标,但是还是有一两处细节需要处理,以提升用户体验。
一是在下载图片的过程中需要显示一个背景图,让用户先知道那里会出现图片,而不是一片空白。
二是图片下来以后,要根据图片的大小动态调整显示效果,不能出现WebView太大而图片太小时的白边。
由此,我们从WebView继承一个PictureWebView专门解决上面这两个问题。
首先,我们要为这个PictureWebView实现WebView.PictureListener接口,该接口提供的
public abstract void onNewPicture(WebView view, Picture picture)
方法用于在图片改变时发出通知。代码如下,其中的picture是一个Picture类型的成员变量。
注意到这里已经根据picture大小调整了控件的布局。因为我们这个PictureWebView的每个实例针对的只是一条微博中的图片URL,因此这里不关注WebView中其他的可显示元素。
接下来,为了更好的处理第二个问题,我们改写一下onDraw()方法,进行背景和图片的绘制。代码如下:
这样,一个定制的WebView就实现了,修改blogview.xml布局文件中的WebView控件为PictureWebView即可,代码如下:
运行程序,无论是头像还是微博中的图片,在未下载完时是显示背景图的,下载完后会自动调整布局进行适应,而且不存在无用的边框。截图见《Android控件组合应用一》一文。
结语:本来想在一篇中写完,但篇幅太长,所以分割成了这许多部分。而且也没想到CSDN勤劳的小编在第一篇文章刚出时就盖了“推荐”的章,然后我就开始熬夜赶工了。在代码中没有注重算法之类的事情,也没有达到商用的程度,主要还是通过模仿新浪微博的客户端界面来灵活应用一下Android的控件,同时也可以看到Android框架带给开发人员的灵活程度。
附上全部的源码和资源供参考(该程序在MOTOROLA milestone Android 2.1上进行了测试,其中的部分资源来源于新浪微博,仅供学习测试之用)。
点此下载源码
——欢迎转载,转载请注明出处 http://blog.csdn.net/caowenbin ——
分享到:
相关推荐
这个Demo主要实现如何将Android下几个原生的控件封装到一起,产生一个新的控件,称之为“android自定义组合控件”,这种控件可以简化代码,大家有空下载看看吧,谢谢!
易语言源码易语言画板控件的功能应用与事件源码.rar 易语言源码易语言画板控件的功能应用与事件源码.rar 易语言源码易语言画板控件的功能应用与事件源码.rar 易语言源码易语言画板控件的功能应用与事件源码.rar ...
Android常用控件应用源码,Android常用控件应用源码
Android UI控件组件库集合【源码】 热门标签,流式布局,刮刮乐控件,侧滑控件,循环幻灯片控件,自动换行控件,下拉列表,圆角进度控件等常用UI控件组件合集
Android 控件抖动效果源码.zip源码资源下载Android 控件抖动效果源码.zip源码资源下载
android自定义组合控件
仿新浪微博Android客户端主界面的源码。
AndroidMenu控件源码 AndroidMenu控件源码 AndroidMenu控件源码
《Android自定义控件入门到实战》源码
Android自定义view组合控件、重写控件的例子源码,创建出对应的组合布局视图,将创建出的视图添加到根节点。Android使用view控件的例子,面向Android开发新手,高手绕行。
Android使用系统控件组合成新的自定义控件,为android studio 源码
Android 控件之ProgressBar进度条源码
android控件spinner应用示例
android签到应用程序源码,涉及控件,数据库的使用~ android签到应用程序源码,涉及控件,数据库的使用~ android签到应用程序源码,涉及控件,数据库的使用~ android签到应用程序源码,涉及控件,数据库的使用~...
Android应用源码数字标识控件.zip项目安卓应用源码下载Android应用源码数字标识控件.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
android 自定义控件代码实现。有需要自定义按钮的,请下载使用,供学习
android 表格控件源码,具有编辑功能,滑动时表头固定,可自定义表头行高,及数据行高、自定义列数,动态添加列。
Android 组合控件,用自定义方式实现,非简单重写adapter。同时包含了点击事件的响应。
Android控件例子源码