- 浏览: 15340 次
最新评论
文章列表
1、类的适配器模式:有一个待适配的类Source,目标接口Targetable,通过Adapter将Source的功能扩展到Targetable。实现:Adapter继承Source拥有Source的方法,去适配Targetable。2、对象适配器模式:Adapter不继承Source,只是持有Source的实例,用 ...
什么是工厂模式?
工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实 ...
转自 http://blog.csdn.net/liubin8095/article/details/12705479
总结:AsyncTask 本质是用handler更新界面;在3.0版本以后,它在AsyncTask中是以常量的形式被使用的,因此在整个应用程序中的所有AsyncTask实 例都会共用同一个SerialExecutor;默认情况下SerialExecutor模仿的是单一线程池的效果,如果我们快速地启动了很多任务,同一 时刻只会有一个线程正在执行,其余的均处于等待状态;如果想同时启动多个任务可以通过
Executor exec = n ...
当我们的ListView中的Item包含图片,而且这些图片是同一资源,我们用多线程去加载图片,这时候可能就发生了这种情况。
比如线程是人,第一个人去做加载图片到缓存的工作,还没做好时第二个人要这同一张张图,结果缓存还没有这张图,于是第二个人也去加载图片到缓存。。以此类推,同时可能有N个人在加载同一张图,N取决于图片没加载到缓存前,可见的Item数量。于是针对这种情况进行细化同步,避免发生。
//首先需要一个ConcurrentHashMap<String, Boolean>,String表示资源地址如图片地址,Boolean表示是否有线程正在加载。
//之所以用Co ...
有的时候我们想将对象保存到数据库中,就需要将对象序列化为二进制数组,然后保存到数据库。
从数据库提取出二进制数组,还需要将其还原为对象。
本例中ArrayList已经implements Serializable,其他对象需要实现此接口才能序列化
1、从ArrayList序列化为二进制数组
/**
* 将ArrayList转化为二进制数组
*
* @param list
* ArrayList对象
* @return 二进制数组
*/
private byte[] getImageSpanInfoBytesF ...
因为项目需要,需要实时监听光标的位置变化,网上提出的用TextWatcher和onTouchListener中调用contentText.getSelectionStart()都是获取的上一次位置。
只要重写onSelectionChanged就可以获取最新的光标位置了。
public class NoteContentEditText extends EditText {
public NoteContentEditText(Context context, AttributeSet attrs) {
super(context, attrs);
// ...
我们使用ListView将位置拖到顶部和底部默认是没有回弹效果的,为了增加这个效果,方法如下: 1、开启overScrollMode为always 在布局中 android:overScrollMode="always" 或在代码中 setOverScrollMode(View.OVER_SCROLL_ALWAYS); 2、继承listview 覆盖overScrollBy方法,并且利用反射机制修改阴影效果为透明
public class BounceListView extends ListView {
private static final int M ...