摘要: 示例原图: 拖动查看其他部分: 放大仔细查看 代码示例,注释比较详细,其他不多讲了package com.study.drascale;import android.os.Bundle;import android.app.Activity;import android.graphics.Matrix;import android.graphics.PointF;import androi... 阅读全文
posted @ 2016-10-01 23:38 杨伟乔 阅读(687) 评论(0) 推荐(0) 编辑
摘要: 尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 sour... 阅读全文
posted @ 2016-10-01 23:33 杨伟乔 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。比如:一个应用要和网络打交道,有很多步骤需要访问网络,为了不阻塞主线程,每个步骤都创建个线程,在线程中和网络交互,用线程池就变的简单,线程池是对线程的一种封装,... 阅读全文
posted @ 2016-10-01 23:32 杨伟乔 阅读(1043) 评论(1) 推荐(0) 编辑
摘要: 你的ImageView只有128*96像素的大小,只是为了显示一张缩略图,这时候把一张1024*768像素的图片完全加载到内存中显然是不值得的。所以我们需要一个方法来解决这个问题。[java] view plaincopypublic static int calculateInSampleSize(BitmapFactory.Options options, int reqWi... 阅读全文
posted @ 2016-10-01 23:31 杨伟乔 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 研究了android从网络上异步加载图像:(1)由于android UI更新支持单一线程原则,所以从网络上取数据并更新到界面上,为了不阻塞主线程首先可能会想到以下方法。 在主线程中new 一个Handler对象,加载图像方法如下所示[java] view plaincopyprint?private void loadImage(final String url, final int id... 阅读全文
posted @ 2016-10-01 23:30 杨伟乔 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 注意:LruCache是有版本限制的,低版本的sdk需要在libs文件夹添加相应的support-4v文件。本文改造的大部分是参考http://www.iteye.com/topic/1118828,感谢。不废话直接上工程代码,内有关键注释,项目就不上传了,自己对照着上面网址改呗。首先是Application文件,负责创建图片存储文件夹:public class MyApp extends App... 阅读全文
posted @ 2016-10-01 23:28 杨伟乔 阅读(273) 评论(0) 推荐(0) 编辑
摘要: AsyncTask可以自己写一个 AsyncTask, 唉.实际开发中, 如果用 AsyncTask 访问网络, 可以重写一个AsyncTask, 加上判断网络状态的功能 protected abstract class MyHttpTask extends AsyncTask { // 当前BaseView类中无法获知需要进行什么操作 // protected ... 阅读全文
posted @ 2016-10-01 23:24 杨伟乔 阅读(544) 评论(0) 推荐(0) 编辑
摘要: Handler机制中的五大对象android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类。 另外, 还有一个类: HandlerThread.Message: 消息MessageQueue: 消息队列Handler: 消息处理器, 发送,... 阅读全文
posted @ 2016-10-01 23:23 杨伟乔 阅读(327) 评论(0) 推荐(0) 编辑
摘要: Handler机制的原理 :Android提供了handler 和 looper 来满足线程之间的通信 Handler是先进先出的原则一个线程可以产生一个looper对象,由它去管理线程里面消息队列 MessageQueueHandler 你可以构造handler对象来与looper沟通.可以发送消息 和处理消息 MessageQueue 用来存放线程放入的消息 线程 一般值的是主线程 UIth... 阅读全文
posted @ 2016-10-01 23:19 杨伟乔 阅读(131) 评论(0) 推荐(0) 编辑
摘要: package com.fone.livechannel.ui.room;import java.io.FileInputStream;import java.util.regex.Matcher;import java.util.regex.Pattern;import android.content.Context;import android.graphics.Bitmap;import a... 阅读全文
posted @ 2016-10-01 23:12 杨伟乔 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 介绍Java的字节码一般是非常容易反编译的, 而android采用java编写, 生成的apk安装文件实际上就是一个压缩包, 可以将其解压缩, 再借用其他工具就能被反编译出来. 为了能对源代码就行一些必要的保护, 我们可以对编译好的class文件进行混淆处理. ProGuard的就是一个混淆器, 混淆器通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆, 混淆... 阅读全文
posted @ 2016-10-01 22:24 杨伟乔 阅读(2755) 评论(0) 推荐(0) 编辑
摘要: 1. 功能介绍AndroidEventBus是一个Android平台的事件总线库, 它简化了Activity、Fragment、Service等组件或者对象之间的交互,很大程度上降低了它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。AndroidEventBus吸收了greenrobot的EventBus以及square的otto的优点,并在此基础上做出了相应的改进,使得事... 阅读全文
posted @ 2016-10-01 22:21 杨伟乔 阅读(1500) 评论(0) 推荐(0) 编辑
摘要: AndroidEventBus如果你不知道事件总线是什么,那么没有关系,下面我们先来看这么一个场景:你是否在开发的过程中遇到过想在Activity-B中回调Activity-A中的某个函数,但Activity又不能手动创建对象来设置一个Listener什么的? 你是否想在某个Service中想更新Activity或者Fragment中的界面? 等等之类的组件之间的交互问题……一经思考,你会发现A... 阅读全文
posted @ 2016-10-01 22:20 杨伟乔 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9153761记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻的理解了。还未阅读过的朋友,请先参考 Android事件分发机制完全解析,带你从源码的角度彻底理解(上) 。那么今天我们将继续上次未... 阅读全文
posted @ 2016-10-01 22:14 杨伟乔 阅读(267) 评论(0) 推荐(0) 编辑
摘要: Android事件总线还能怎么玩?顾名思义,AndroidEventBus ( github链接 ,关于我为什么要写这个库请参考《AndroidEventBus ( 事件总线 ) 的设计与实现》)是一个Android平台的事件总线框架,它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使我们的代码更加简洁,耦合性更低,提升了我们的代码质量。... 阅读全文
posted @ 2016-10-01 22:07 杨伟乔 阅读(151) 评论(0) 推荐(0) 编辑
摘要: OOM: 内存泄露可以引发很多的问题: 1.程序卡顿,响应速度慢(内存占用高时JVM虚拟机会频繁触发GC) 2.莫名消失(当你的程序所占内存越大,它在后台的时候就越可能被干掉。反之内存占用越小,在后台存在的时间就越长) 3.直接崩溃(OutOfMemoryError) ANDROID内存面临的问题: 阅读全文
posted @ 2016-10-01 21:38 杨伟乔 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前:本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总、挑选、简化后整理而成。所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知... 阅读全文
posted @ 2016-10-01 21:35 杨伟乔 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!写在最前:本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总、挑选、简化后整理而成。所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识... 阅读全文
posted @ 2016-10-01 21:34 杨伟乔 阅读(170) 评论(0) 推荐(0) 编辑
摘要: Android 解决图片大量下载:软引用必须懂4点可能对于Android开发者来说,软引用这个词有的会不是很熟悉,软引用在Java开发中用的比较多,但是,在Android开发中引用软引用,会给我们解决很多难题。AD:1.对象的强、软、弱和虚引用为了能更加灵活控制对象的生命周期,需要知道对象引用的4中级别,由高到低依次为 :强引用、软引用、弱引用和虚引用备注: 这四种的区别:⑴强引用(StrongR... 阅读全文
posted @ 2016-10-01 21:24 杨伟乔 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候... 阅读全文
posted @ 2016-10-01 21:22 杨伟乔 阅读(157) 评论(0) 推荐(0) 编辑