android开发
crazy__chen
只要有一个人爱我,懂我,愿意等我,我便勇往直前,无所不能。
展开
-
android 报错集锦
Eclipse报错如下: FATAL EXCEPTION: main android.app.SuperNotCalledException: Activity {net.reecam/net.reecam.CameraVideo} did not cal转载 2014-04-15 11:44:23 · 2008 阅读 · 0 评论 -
Dialog_Viewpager_GridView实现过程
在做ColorGame游戏的时候,根据UI,要实现一个dialog,里面是Viewpager,viewPager里面是Fragment,Fragment里面是一个GridViewUI如下:实现方法并不困难首先是dialog的实现,我们选择DialogFragment注意在布局的时候,第一层ViewGroup的大小是会被忽略的(不知道为什么),所以我们要嵌入两个层ViewGr原创 2014-12-16 12:30:16 · 2160 阅读 · 1 评论 -
android斗地主开发步骤记录
1,public class GameView extends SurfaceView implements SurfaceHolder.Callback建立画布类,继承SurfaceView和SurfaceHolder.Callback接口,覆写抽象方法2,在构造函数中,设置surfaceHolder = this.getHolder();surfaceHolder.addCall原创 2014-12-16 12:32:53 · 5134 阅读 · 1 评论 -
android自定义控件滑动开关详解
该文章为原创,转载请注明出处http://1.crazychen.sinaapp.com/?p=600最近研究了一下android的自定义滑动开关,查找了网上的文章,都说得不是很详细,虽然思路大致相同,但是要通过动手实验一下,整理出自己的思路才懂。这篇文章希望能帮助其他朋友,实现这个功能。首先,让我们来创建一个SlipButton类,让它集成View类型和OnTouchListener原创 2014-12-16 12:33:20 · 2482 阅读 · 0 评论 -
android文件上传客户端与服务器端代码
先说服务器端,需要包含commons-fileupload.jar和commons-io.jar这俩jar包,注意要导入到WEB-INF/lib目录下面,否则导入不正确要吃很多亏再看代码package com.apptest;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;原创 2014-12-16 12:34:13 · 4242 阅读 · 1 评论 -
AutoTextView自定义自动提示
本文原创,转载请注明出处http://1.crazychen.sinaapp.com/?p=532我们知道,要为AutoTextView添加自动提示,只需要为它设置一个ArrayAdapter适配器就可以了,我们开始使用这样的构造方法new ArrayAdapter(context, R.id.list_item, strArray);然后为AutoTextView设置适配器即可我来说原创 2014-12-16 12:34:58 · 2614 阅读 · 0 评论 -
广州地铁离线查询app源码
广州地铁离线查询app源码原创代码,转载请标明出处http://1.crazychen.sinaapp.com/?p=529package com.example.station;import android.app.Activity;import android.content.Context;import android.content.Intent;import and原创 2014-12-16 12:35:52 · 3786 阅读 · 0 评论 -
实现图片渐变透明的轮播效果(欢迎界面)
package com.example.androidtest;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity { private WelcomeView wv = null; @Over原创 2014-12-16 12:36:23 · 4895 阅读 · 0 评论 -
android手机屏幕适应
在做《格子色魔》开发的时候,发现自己的小米3跟模拟器的效果不同,查找了网上的资料,因为之前没有做过屏幕适配,花了一点功夫终于明白了。首先是dip的计算,不同分辨率的手机,可能存在相同的dip以我的小米3为例,手机1920x1280分辨率,屏幕为5英寸(对角线距离),所以我们通过勾股定理算出对角线像素,再除以5英寸,可以算出dip为441dp而我看来一下,发现模拟器为480*80原创 2014-12-01 19:53:21 · 802 阅读 · 0 评论 -
android断点上传大文件原理分析
上次说了文件断点下载的续传,这次要说一下大文件上传的原理了大文件上传,不适合使用POST,GET形式,所以我们选中SOCKET作为上传方式而续传功能,则需要服务器端与客户端相互配合才能完成下面来介绍一下两者的工作*******android客户端********首先,android通过数据库读取要上传的文件信息,包括文件的路径,大小,ResourceId(这个是用于原创 2014-12-17 15:53:11 · 5615 阅读 · 0 评论 -
XML解析的三种方式总结
XML解析有三种方式,这里来总结一下*************************SAX*************************首先是SAX方式,这种方式是边加载边解析关键的一个类是DefaultHandler,我们通过集成这个类,Override一些关键的方法,从而解析XML文件主要的方法有@Override public void startDocume原创 2014-12-18 00:18:47 · 1282 阅读 · 0 评论 -
SimonVT/android-datepicker的使用
SimonVT/android-datepicker是一个非常出名的datepicker控件,我们可以通过改写控件代码,实现更好看的datepicker但是在github上并没有说清楚怎么使用这个控件,我也是经过多次尝试,才学会使用,现在给大家一个教程首先处理在https://github.com/SimonVT/android-datepicker这个网址,下载控件library原创 2015-02-05 20:14:46 · 1838 阅读 · 0 评论 -
android多线程断点续传原理解析
在下载大文件的时候,我们往往要使用多线程断点续传,保证数据的完整性下面我来解析一下多线程断点续传的原理首先说多线程,我们要多线程下载一个大文件,就有开启多个线程,多个connection,既然是一个文件分开几个线程来下载,那肯定就是一个线程下载一个部分,不能重复那么我们这么确定一个线程下载一部分呢就需要我们在请求的header里面设置conn.setRequestPrope原创 2014-12-15 19:56:28 · 5192 阅读 · 0 评论 -
xlistview的使用
xlistview是经常使用到的一个开源项目,但是我导入的时候出现了一点问题提示xml错误,显然这个错误是xml布局的问题,但是我是直接导入包作为库的,那么错误要找起来就麻烦了,可能要翻源代码,而且也可能是sdk版本问题导致的错误由于项目时间原因,我直接将xlistview里面的主要的类,主要的资源文件,直接放入自己的项目里面然后直接使用就可以推荐使用出现莫名其妙错误的,可以参考一原创 2015-02-20 00:54:13 · 683 阅读 · 0 评论 -
android bitmap缓存机制(上)
android bitmap缓存机制,网上有很多译文http://my.oschina.net/ryanhoo/blog/88153,都是大同小异,我是直接看的译文,然后根据自己的理解,把文章的结构给大家再说明一下图片加载,首先要解决的问题是图片太大,但是我有时候需要显示的尺寸又不必太大的时候,避免浪费内存的问题解决方法是,首先获取图片的尺寸,而不是真正的把它加入内存,根据尺寸判断是否需要原创 2015-03-02 00:06:46 · 1051 阅读 · 0 评论 -
android bitmap缓存机制(下)
上篇文章说明了图片的加载时,要注意大小问题,和并发的处理问题下面我们再说明一下bitmap的缓存机制缓存有两种,一种是内存缓存,较快,但是大小有限一种是硬盘缓存,较慢,但是空间较大内存缓存主要是使用一个LruCache类,它可以存储一个键值对,也就是存储图片id和图片的bitmap对象LruCache基本原理就是每次加载图片前,先判断是否在LruCache里面缓存了图片,有原创 2015-03-02 11:34:45 · 976 阅读 · 0 评论 -
android之设计模式
这篇文章结合安卓来说一下常用的设计模式,主要只是解释一些设计模式的意义和android中对应的例子单例模式单例模式就是只生成一个实例,避免多个实例造成的浪费和冲突在android里面对应的例子就是InputMethodManager使用单例模式的时候,要主要多线程安全的问题,所以在生成函数上加锁另外单例模式还分成饱汉模式和饿汉模式饿汉模式的特点是在类初始化是就生成单例对象原创 2015-03-05 21:58:59 · 720 阅读 · 0 评论 -
android后台服务service全解析(上)--service的使用与本地通信
这篇文章主要介绍android中的service首先我们要弄清楚service到底是什么东西,它是android用于提供后台服务的,主要service(IntentService)不是进程,也不是线程,是依赖于应用程序的主线程的。Android的后台就是指,它的运行是完全不依赖UI的。即使Activity被销毁,或者程序被关闭,只要进程还在,Service就可以继续运行。我们在使用servic原创 2015-04-03 15:44:21 · 4440 阅读 · 0 评论 -
android后台服务service全解析(下)--service远程通信
前面讲述了service的本地通信,也就是跟启动它的进程本身通信,而接下来还有介绍更为深入的内容,Service的远程通信,也就是跟其他进程的通信。首先我们来看下面一个问题,假设我们使用本地service,我们在onStartCommand()方法了执行了耗时操作,那么主线程将会阻塞,我们这时点击屏幕上的button的时候,就会出现ANR(Android Not Response)。但是假原创 2015-04-03 21:38:13 · 2887 阅读 · 0 评论 -
android后台服务service全解析(中)--IntentService与Notification前台通知
前面介绍了service的一般使用,在文章最后提到一般要在service里面启动线程去执行具体操作,这种情况下我们要调用stopService方法才能关闭Service,或者在线程中调用stopSelf()方法,但是程序员往往会忘了做这两件事情,从而导致service没有关闭或者主线程阻塞android为我们提供了一个IntentService,来替我们默认创建一个子线程,同时在线程执行完毕以原创 2015-04-03 19:32:52 · 4922 阅读 · 0 评论 -
Intent属性详解
Intent提供了一种通用的消息系统,它允许在你的应用程序见传递Intent来执行动作和产生事件,使用Intent可以激活Android应用的三种类型的核心组件:活动Activity、服务Service、广播接受者Broadcast。Intent分为显示Intent和隐式Intent,区别是:显式Intent需要指定要启动的Activity,而隐式Intent则是指定一些条件,android会原创 2015-04-04 15:12:17 · 2742 阅读 · 0 评论 -
Listview的使用与优化(下)
接上一篇文章,首先我们再来复习一个listview的缓存优化方法1,对Imageview使用setTag()方法来解决图片错位问题,这个Tag中设置的是图片的url,然后在加载的时候取得这个url和要加载那position中的url对比,如果不相同就加载,相同就是复用以前的就不加载了2,对于要加载的图片资源,先在内存缓存中找(原始的方法是使用SoftRefrence,最新的方法是使用a原创 2015-04-05 16:31:13 · 1058 阅读 · 0 评论 -
Listview的使用与优化(上)
Listview几乎是最常见但是却比较难使用的控件了,这篇文章由浅入深讲解了listview的使用和优化。首先来看listview的最简单使用,依赖ArrayAdapterpublic class MyActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) {原创 2015-04-04 20:42:32 · 995 阅读 · 0 评论 -
Listview的使用与优化(中)
上篇文章简单地介绍了listview的使用和优化,都是一些常见的优化技巧。但是listview优化还有一些重要的问题,那就是图片加载,异步加载的优化,因为图片占用内存较大,listview在滑动过程中很容易产生OOM的现象,下面我来给大家解释一下图片异步加载的优化思路。总的来说有一下几个优化思路:1,对Imageview使用setTag()方法来解决图片错位问题,这个Tag中设置的是图片的原创 2015-04-05 05:25:39 · 2469 阅读 · 1 评论 -
Android 异步消息处理机制Looper、Handler、Message三者关系
Looper,Handler,Message三者是我们常常用来再子线程跟新UI的,我们把Message发给Handler,然后,handler调用HandlerMessage()方法,我们在这个方法里面更新UI。那么Looper呢,又是什么,下面我来给大家介绍一下三者的关系。首先要说明的是,每个线程最多只有一个Looper,在线程里面调用Looper.prepare()就是为这个线程设置了一个原创 2015-04-05 19:23:28 · 1219 阅读 · 0 评论 -
android常见面试题与我自己的回答
1,请描述下Activity的生命周期。Activity生命周期包括onCreat(),onStart(),onPause(),onStop(),onDestory,onResume(),onRestart()onCreate()是第一个调用的,用来创建activity的方法,我们通常在这个方法里面调用setContentView设置UI然后会调用onStart()启动activi原创 2015-04-07 00:10:35 · 4098 阅读 · 2 评论 -
LruCache源码解读
Lrucache是Android4.0以后提供的一个用于缓存的类,这个类抛弃了原有的softReference(软引用)形式,因为android4.0以后虚拟机更倾向与回收软引用,也就是一旦虚拟机发现软引用,就会进行回收,这使得软引用变得不再可靠。Lrucache的源码并不长,内部是使用LinkedHashMap map来存储缓存的键值对,下面我带大家一起看一下lrucache的源码,希望大家原创 2015-04-22 19:01:07 · 1043 阅读 · 0 评论 -
DiskLruCache源码解析
DiskLruCache是google开源的一个本地缓存类,虽然没有成为android的库类,但是非常好用,我个人推荐使用这个类进行缓存。当然也已经有很多人在使用这个类了,但是很多事情,我们不但要知其然,更要知其所以然,这篇文章将带大家一起解读DiskLrucache的源码,看一些大神是怎么写代码的。先来看DiskLrucache的一些基本属性public final class Di原创 2015-04-23 00:34:34 · 2801 阅读 · 1 评论 -
android画图双缓冲模拟
android中的Surfaceview实现了双缓冲机制,所谓双缓冲,就是会保存上一次绘图的内容,然后再上一次的基础上继续绘图,这样是为了保证绘制的图像不丢失。但是view本身并没有实现双缓冲机制,下面我们来模拟一下双缓冲先说明一下思路:当程序再view绘图是,并不直接绘制在view上,而是绘制到内存中的bitmap图片上,等内存中的bitmap绘制好了之后,在一次性把bitmap绘制到v原创 2015-04-09 01:15:45 · 904 阅读 · 0 评论 -
androidOOM处理
问题: 安卓系统经常遇到OOM问题,如何优化和应对?导致OOM 有以下几种情况:1 应用中需要加载大对象,例如Bitmap解决方案:当我们需要显示大的bitmap对象或者较多的bitmap的时候,就需要进行压缩来防止OOM问题。我们可以通过设置BitmapFactory.Optiions的inJustDecodeBounds属性为true,这样的话不会加载图片到内存中,但是会将图片的w原创 2015-05-03 19:01:45 · 1812 阅读 · 0 评论 -
android性能优化
这篇文章结合Android性能优化典范的专题文章,用更加简介通俗的语言,总结了该文章所讲述的android性能优化的各个点。总的来说有以下几点:1,android系统每16ms发出一次信号让UI进行渲染,如果每次渲染成功,那么就能达到流畅画面所需的60fps,但是由于你的UI太复杂,就会无法在16ms内渲染完成,就会出现丢帧的情况,从而感觉卡顿。屏幕上同一像素点可能因为控件层叠的关系被绘制原创 2015-05-03 11:30:34 · 800 阅读 · 0 评论 -
dmytrodanylyk/circular-progress-button源码解析(一)
dmytrodanylyk/circular-progress-button是github上一个开源的按钮控件,这个是链接https://github.com/dmytrodanylyk/circular-progress-button下面是示例图,应该说作为按钮,设计非常的简洁大方,这篇文章就是来介绍一下这个circular-progress-button的源码,让大家明白这么漂亮的控件原创 2015-05-30 23:42:19 · 3657 阅读 · 8 评论 -
dmytrodanylyk/circular-progress-button源码解析(二)
源码下载http://download.csdn.net/detail/kangaroo835127729/8755815在上篇文章http://blog.csdn.net/crazy__chen/article/details/46278423中,我主要讲述了circular-progress-button状态切换的动画过程,接下来我们看一个最特殊的状态,就是加载状态,这个状态会显示一个圆环原创 2015-05-31 01:44:34 · 2614 阅读 · 6 评论 -
volley源码解析(七)--最终目的之Response<T>
在上篇文章中,我们最终通过网络,获取到了HttpResponse对象HttpResponse是android包里面的一个类,然后为了更高的扩展性,我们在BasicNetwork类里面看到,Volley将其包装成一个Volley自己的对象NetworkResponse另外,在BasicNetwork类中我们也注意到,对HttpResponse包装成NetworkResponse的过程中,使用原创 2015-06-24 00:30:59 · 3185 阅读 · 1 评论 -
Scroller类源码解析及其应用(二)
接上一篇文章的内容,这篇文章主要是Scroller类的应用,在讲具体实例之前,我还有顺便提一个Scroller的问题。就是fling()方法和startScroll()方法的区别,其实确保已经在上篇文章说得很清楚(注释里面)。fling没有设置起点坐标和终点坐标,而是根据滑动的起始速度来计算最后会到达的坐标位置。在了解scroller的使用之前,我们来看一下调用示意图据原创 2015-05-22 16:45:12 · 1725 阅读 · 2 评论 -
ChrisRenke/DrawerArrowDrawable源码解析
转载请注明出处源码下载地址这次解析的控件DrawerArrowDrawable是一款侧拉抽屉效果的控件,在很多应用上我们都可以看到(例如知乎),控件的github地址为https://github.com/ChrisRenke/DrawerArrowDrawable大家可以先来看一下控件的效果这个控件的作者,也写过一篇文章对控件的制作过程做了说明,其中更多的是涉及箭头的原创 2015-06-02 21:51:32 · 3191 阅读 · 1 评论 -
volley源码解析(六)--HurlStack与HttpClientStack之争
Volley中网络加载有两种方式,分别是HurlStack与HttpClientStack,我们来看Volley.java中的一段代码if (stack == null) {//如果没有限定stack if (Build.VERSION.SDK_INT >= 9) {//adk版本在9或者以上 stack = new HurlStack(原创 2015-06-23 22:16:29 · 3305 阅读 · 1 评论 -
volley源码解析(五)--NetworkDispatcher从网络中获取数据
上一篇文章当中,我介绍了CacheDispatcher和缓存类Cache是怎么根据request从缓存中获取到数据的,接下来这篇文章,将会介绍网络数据的获取。对比缓存的获取,其实我们也有两个类,一个是NetworkDispatcher,一个是Network,前者是线程,后者是对抽象的网络的实体化。这样的设计方式也是值得我们学习的,因为Network会负责处理网络请求过程中遇到的各种问题,这原创 2015-06-15 21:02:10 · 3043 阅读 · 1 评论 -
chenglei1986/DatePicker源码解析(一)
DatePicker在android其实是有提供的一个控件,相信有不少的人使用过它,但是这个控件的外观我们只能做一些简单的设定(原生的),如果我们有更高需求,希望能自定义我们的datepicker的外观,希望赋予它更多的功能,我们就需要自定义一个datepciker控件。在github上,我发现了一个chenglei1986/DatePicker的项目,可以实现上面的需求。地址是https:/原创 2015-05-23 21:43:43 · 2719 阅读 · 0 评论 -
Maxwin-z/XListView-Android(下拉刷新上拉加载)源码解析(一)
本次解析的内容,是github上一个用于下拉刷新上拉加载的控件xlistview,这个功能相信大家在开发的过程中会经常用到。控件的源码地址是https://github.com/Maxwin-z/XListView-Android在这个控件之前,我看过一些相同功能的控件,挑选后觉得XListView功能比较完善,而且易于理解。在android-open-project里面,有提到一个Dro原创 2015-05-25 15:28:01 · 3300 阅读 · 2 评论