`
heisedeyueya
  • 浏览: 97722 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
文章列表
ListView异步加载网络图片完美版之双缓存技术    本示例参考学习了一个国外的示例:http://code.google.com/p/android-imagedownloader/,有兴趣的同学下载研究一下。 问题描述:在这一篇博客中将会为大家讲解如何将下载回来的图片进行缓 ...
Android开发博客推荐 Android-Touch事件传递详解 Android内存泄漏分析实战 Handler-looper消息循环原理分析 LeakCanary让Android内存泄漏无处遁形
黑月神话的技术分享 Handler概述     Handler在Android开发中非常重要,最常见的使用场景就是在子线程需要更新UI,用Handler来投递消息到主线程执行UI更新操作。因为Android系统的View是非线程安全的,所以需要在主线程更新UI。总的来说Handler就是用来做线程间通信,在不同线程之间传递消息。注:这篇文章所讲到的Handler是在主线程创建的,主线程在开始的时候已经创建了默认的消息循环。后面的文章会讲如何创建自己的消息循环。     从图中可以看出,四种颜色分别代表了四个对象,并且大致描述了几个对象之间的关系,以及消息的流转过程,首先Handler通过sen ...
黑月神话的技术分享     在UIActionSheet中嵌入UIPickerView,美观漂亮。我自己的项目中也是这么用的,在IOS7.1之前都运行的非常完美,但是当系统升级到IOS8.1之后,运行出来的效果就非常的糟糕,ActionSheet不能够完全的显示出来内容。 下面是解决之前与解决之后的效果对比图 解决方案就是通过用UIView模拟UIActionSheet
    以后我将逐步在我的个人博客中写文章,有兴趣的同学可以访问:http://vjson.com       我相信对于Android开发者来说,屏幕适配一直是你心中的痛~,为了让Android开发者从屏幕适配的痛苦中解脱出来,我决定实现这个Android自动化屏幕适配的1.0版本。下面来讲一下思路。 首先以values-w360作为标准也就是360dp,对应的设备就是720×1080俗称的720P的屏幕,也就是说设计师给的设计稿是以720P的屏幕作为设计图的,那么如果设计图上面的尺寸是100px,那么我们就需要用100/2 = 50dp得到我们的这个标准值,以此类推,将app中所有需要适 ...
ListView异步加载网络图片完美版之双缓存技术 问题描述:以前对ListView加载网络图片以及缓存机制进行了分析,本来自以为已经完美了,前段时间有朋友说还有问题,问题是AsyncTask中的线程池满了>128。以前控制线程数量的方法是在ListView处于Fling状态的时候不去启动下载线程,然而这样的做法没有从更本上控制线程的数量。 解决方案:今天我将通过生产者消费者模式+信号量来控制AsynTask的执行。 // 通过信号量控制同时执行的线程数 Semaphore mSemaphore = new Semaphore(50); // 这里是任务的消费者,去任务队 ...
dialog样式的Activty 1、自定义样式,在values目录新建一个styles.xml文件,在里面添加自定义的dialog样式,主要:parent="android:style/Theme.Dialog" <?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme:CustomDialog" parent="android:style/Theme.Dialog&q ...
ListView异步加载网络图片之完美解决方案 问题描述:上一篇文章中解决了一个图片显示混乱的bug,但是还遗留下来一个更严重的bug,那就是当我们猛地拖动列表的时候,会感觉非常的卡顿,并且继续不顾一切的拖动程序就会崩溃,看一下抛出的异常是RejectedExecutionException。 错误的原因:由于异步加载图片用的是AsyncTask(异步任务),AsyncTask的内容实现是采用的一个线程池,池子的的最大容量是128,然而连续的滚动ListView触发了getView的调用,在getView中又去创建并执行了异步任务,所以就会导致线程池满了,看一下AsyncTask的源码 ...
ListView异步加载网络图片之二     上一篇文章中卖了一个关子,遗留下来两个bug,不知道有没有同学发现,或者已经解了,那么这一篇文章我将解决其中一个bug(呵呵继续卖。。。) 问题描述:当我们把列表向下滚动再向上滚动反复的操作,本来应该是iteye的logo和妮露(看死神的同学应该知道)交替显示的,但是悲剧却发生了,图片乱了。 问题产生的原因:由于listview中列表项的view是复用的,当后台返回图片,并执行onPostExecute方法中调用这一句mViewHolder.mImageView.setImageBitmap(result)的时候,他会影响到所有复用的item,而这个 ...
ListView异步加载网络图片之一     前面用了三篇文章来写有关ListView性能优化,这一个文章,将讲解从网络异步加载图片,然后显示到列表中。由于需要异步加载,所以这里会用到AsyncTask这个类。     AsyncTask:他是Android提供的一个异步任务组件,他会开启一个后台线程,最后将执行的结果返回到UI线程,并且不用我们去操纵thread和handler,非常的方便。     注意:在AndroidManifest.xml中添加网络访问的权限,新手很容易忘掉的。。。如果网络的权限都没有,神马都是浮云了 <uses-permission android:nam ...
ListView性能优化系列之三     上一节讲到了ListView中的垃圾回收站,用来管理回收view,这一节将继续学习源码,看看这个垃圾回收站到底是怎么用的,convertView是如何传递到adapter的getView方法的。 makeAndAddView:这个方法是在ListView里面,顾名思义,这个方法中有两个动词make和add,所以这个方法的作用是构造一个view并且将这个view加入到viewgroup的children list中去。 private View makeAndAddView(int position, int y, boolean flow, ...
ListView性能优化系列之二   上一节从应用层面给出了ListView性能优化的方法,这一节将从ListView源码中探寻真谛。 下集预告:这一小节讲垃圾回收站,下一个小节讲这个回收站具体是怎么用的,以及adapter中的getView方法是如何拿到回收站的内容的。 下面是ListView的继承关系 ListView继承自AbsListView,而在AbsListView中的RecycleBin就是上一节中View复用的关键。下面就对RecycleBin进行分析 RecycleBin 1、RecycleBin中的数据结构,这些数据结构就是在垃圾回收站堆放的一个个垃圾桶。 priva ...
ListView性能优化之一   不知不觉,都已经正式工作三个月了,这几天将工作中学习的知识进行一个小小的总结,ListView是android中一个非常常用的空间,下面就对ListView控件的性能优化做一点儿分享,由于内容相对有点儿多,我会分为几篇文章进行分享,希望对同学们有帮助,个人愚见,请保持怀疑的眼光阅读。 下集预告:这一小节从表面上讲了性能提高的方法,下一小节将从listview的源码中探寻convertView是如何被回收利用的 问题 当列表中有成千上万条记录的时候,如果每一条记录都去new 一个view的话,就会发生oom 解决问题:通过view的复用来解决这一问题,用户之 ...
最近做项目,需要用到带下划线的EditText,通过学习Android提供的示例Notepad,对其进行小小的改动,解决文字压线的问题,但是光标压线的问题没有解决,希望以后能够解决,效果和代码如下: 效果图: 代码: public class UnderlineEditText extends EditText { private static final String TAG = "UnderlineEditText"; private Paint mPaint; private Rect mRect; private float mult = 1 ...

大整数乘法

package org.iSun.heisedeyueya; public class BigIntegerMultiply { public static void main(String args[]) { String s1 = "51212126"; String s2 = "22434565"; System.out.println(51212126L * 22434565L); bigIntegerMultiply(s1, s2); } public static void bigInteger ...
Global site tag (gtag.js) - Google Analytics