博客园 - HalZhang
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=114750
2016-05-03T03:48:29Z
HalZhang
https://www.cnblogs.com/halzhang/
feed.cnblogs.com
https://www.cnblogs.com/halzhang/p/alipay_sdk_keng.html
Android集成支付宝的坑 - HalZhang
Android在集成支付宝sdk的时候, 如果有安装支付宝,则启动支付宝app进行支付; 如果没有安装,则启动 H5PayActivity 进行支付。 记得在AndroidManifest里面配置: 然而~~~~ H5PayActivity 启动了还有可能是白屏!白屏!白屏!!点解? 原来是在调用支
2016-05-03T03:12:00Z
2016-05-03T03:12:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】Android在集成支付宝sdk的时候, 如果有安装支付宝,则启动支付宝app进行支付; 如果没有安装,则启动 H5PayActivity 进行支付。 记得在AndroidManifest里面配置: 然而~~~~ H5PayActivity 启动了还有可能是白屏!白屏!白屏!!点解? 原来是在调用支 <a href="https://www.cnblogs.com/halzhang/p/alipay_sdk_keng.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/p/4458095.html
RxJava 的使用入门 - HalZhang
一、什么是 RxJava?RxJava 是一个响应式编程框架,采用观察者设计模式。所以自然少不了 Observable 和 Subscriber 这两个东东了。RxJava 是一个开源项目,地址:https://github.com/ReactiveX/RxJava还有一个RxAndroid,用于 ...
2015-04-26T11:03:00Z
2015-04-26T11:03:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】一、什么是 RxJava?RxJava 是一个响应式编程框架,采用观察者设计模式。所以自然少不了 Observable 和 Subscriber 这两个东东了。RxJava 是一个开源项目,地址:https://github.com/ReactiveX/RxJava还有一个RxAndroid,用于 ... <a href="https://www.cnblogs.com/halzhang/p/4458095.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/p/4445145.html
RecyclerView 介绍 02 – 重要概念 - HalZhang
几个概念RecyclerView是一个ViewGroup;LayoutManager控制RecyclerView的ChildView的布局显示,childview由Recycler提供以及管理;Recycler具有两级缓存,Scrap和RecycledViewPool,通过Detach以及Remov...
2015-04-21T10:31:00Z
2015-04-21T10:31:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】几个概念RecyclerView是一个ViewGroup;LayoutManager控制RecyclerView的ChildView的布局显示,childview由Recycler提供以及管理;Recycler具有两级缓存,Scrap和RecycledViewPool,通过Detach以及Remov... <a href="https://www.cnblogs.com/halzhang/p/4445145.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/p/4444894.html
AndroidTips:selector的disable状态为什么无效? - HalZhang
正确的姿势: ----EOF----
2015-04-21T09:10:00Z
2015-04-21T09:10:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】正确的姿势: ----EOF---- <a href="https://www.cnblogs.com/halzhang/p/4444894.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/p/4311701.html
AndroidTips:解决Dialog全屏显示以及Dialog显示自动弹出输入法 - HalZhang
继承实现一个dialog,并在onCreate里面做处理。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layo...
2015-03-03T10:21:00Z
2015-03-03T10:21:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】继承实现一个dialog,并在onCreate里面做处理。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layo... <a href="https://www.cnblogs.com/halzhang/p/4311701.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/p/4303948.html
RecyclerView 介绍 01 - HalZhang
RecyclerView是Android support v7里面是一个自定义控件。用来显示大量数据集合。类似ListView和GridView这两个控件,RecyclerView同样可以实现,甚至更好。以前我们在实现ListView和GridView的时候,都会定义一个ViewHolder用于优化...
2015-02-27T10:17:00Z
2015-02-27T10:17:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】RecyclerView是Android support v7里面是一个自定义控件。用来显示大量数据集合。类似ListView和GridView这两个控件,RecyclerView同样可以实现,甚至更好。以前我们在实现ListView和GridView的时候,都会定义一个ViewHolder用于优化... <a href="https://www.cnblogs.com/halzhang/p/4303948.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2013/05/18/displaying-bitmaps-efficiently.html
高效使用位图 - HalZhang
如何有效的使用位图,避免OOM,Android Training说了很明白了,主要有四点:1、有效的利用大图片根据实际应用情况,加载位图,不要浪费。比如,在一个100*100的ImageView,完全加载一个1000*1000的位图,这就真的很浪费了。应该根据实际大小需求,计算出inSampleSize再去Decode位图,这样很省内存。2、在非UI线程处理位图这个大家都懂,不多说。3、使用缓存利用LruCache和DiskLruCache,两者结合使用,就像多级缓存一样。在实际使用中,根据需要计算出缓存空间大小,同事避免类似横竖屏切换,界面重新初始化,导致缓存失效。4、有效管理位图内存这个需
2013-05-18T02:34:00Z
2013-05-18T02:34:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】如何有效的使用位图,避免OOM,Android Training说了很明白了,主要有四点:1、有效的利用大图片根据实际应用情况,加载位图,不要浪费。比如,在一个100*100的ImageView,完全加载一个1000*1000的位图,这就真的很浪费了。应该根据实际大小需求,计算出inSampleSize再去Decode位图,这样很省内存。2、在非UI线程处理位图这个大家都懂,不多说。3、使用缓存利用LruCache和DiskLruCache,两者结合使用,就像多级缓存一样。在实际使用中,根据需要计算出缓存空间大小,同事避免类似横竖屏切换,界面重新初始化,导致缓存失效。4、有效管理位图内存这个需 <a href="https://www.cnblogs.com/halzhang/archive/2013/05/18/displaying-bitmaps-efficiently.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2013/05/09/3069609.html
说说内存泄露那点事 - HalZhang
先看看一个例子: 1 private static Drawable sBackground; 2 3 @Override 4 protectedvoid onCreate(Bundle state){ 5 super.onCreate(state); 6 7 TextView label =newTextView(this); 8 label.setText("Leaks are bad"); 9 10 if(sBackground ==null){11 sBackground = getDrawable(R.drawable.large_bitmap);...
2013-05-09T11:21:00Z
2013-05-09T11:21:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】先看看一个例子: 1 private static Drawable sBackground; 2 3 @Override 4 protectedvoid onCreate(Bundle state){ 5 super.onCreate(state); 6 7 TextView label =newTextView(this); 8 label.setText("Leaks are bad"); 9 10 if(sBackground ==null){11 sBackground = getDrawable(R.drawable.large_bitmap);... <a href="https://www.cnblogs.com/halzhang/archive/2013/05/09/3069609.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2013/03/22/2975600.html
50MS与100MS - HalZhang
最近除了上班,自己还在搞一个小“玩意”。“玩意”这是一个用户给我发邮件反馈问题这么说的,其实这是一个app。什么app呢?Startup News的安卓客户端。如果你还不知道什么是Startup News,你可以猛击这里:http://dbanotes.net/startup_news.html和http://news.dbanotes.net/news.为什么会做这个app呢?1、我觉得Startup News很有价值。2、我需要这么一个app,方便的浏览和分享,我想还有很多用户同样需要。3、我是一个Android开发者,可以快速推出这么一个app。4、说不定哪天 @Fenng 帮忙推荐下.
2013-03-22T06:53:00Z
2013-03-22T06:53:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】最近除了上班,自己还在搞一个小“玩意”。“玩意”这是一个用户给我发邮件反馈问题这么说的,其实这是一个app。什么app呢?Startup News的安卓客户端。如果你还不知道什么是Startup News,你可以猛击这里:http://dbanotes.net/startup_news.html和http://news.dbanotes.net/news.为什么会做这个app呢?1、我觉得Startup News很有价值。2、我需要这么一个app,方便的浏览和分享,我想还有很多用户同样需要。3、我是一个Android开发者,可以快速推出这么一个app。4、说不定哪天 @Fenng 帮忙推荐下. <a href="https://www.cnblogs.com/halzhang/archive/2013/03/22/2975600.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2011/10/10/2206596.html
单个for循环打印九九乘法表 - HalZhang
1 for (int i = 1,j=1; j <= 9; i++) {2 printf("%d * %d = %d %s",i,j,i*j,"\t"); 3 // NSLog(@"%d * %d = %d",i,j,i*j);4 if(i == j){5 i =0;j++;6 // NSLog(@"%@",@"\n");7 printf("%s","\n");8 }9 }
2011-10-10T13:40:00Z
2011-10-10T13:40:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】1 for (int i = 1,j=1; j <= 9; i++) {2 printf("%d * %d = %d %s",i,j,i*j,"\t"); 3 // NSLog(@"%d * %d = %d",i,j,i*j);4 if(i == j){5 i =0;j++;6 // NSLog(@"%@",@"\n");7 printf("%s","\n");8 }9 } <a href="https://www.cnblogs.com/halzhang/archive/2011/10/10/2206596.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2011/10/07/2200631.html
常见排序算法-采用Objective-c实现 - HalZhang
国庆比较闲,复习一下算法,随便练练objective-c;本文采用objective-c实现常见的排序算法:选择排序,插入排序,快速排序。悼念乔帮主,期待apple在后乔帮主时代创造出更出色的产品。 1 // 2 // Sort.h 3 // Algorithm 4 // 5 // Created by 张 汉国 on 11-9-30. 6 // Copyright 2011年 __MyCompanyName__. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>10 11 @interface Sort
2011-10-07T08:36:00Z
2011-10-07T08:36:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】国庆比较闲,复习一下算法,随便练练objective-c;本文采用objective-c实现常见的排序算法:选择排序,插入排序,快速排序。悼念乔帮主,期待apple在后乔帮主时代创造出更出色的产品。 1 // 2 // Sort.h 3 // Algorithm 4 // 5 // Created by 张 汉国 on 11-9-30. 6 // Copyright 2011年 __MyCompanyName__. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>10 11 @interface Sort <a href="https://www.cnblogs.com/halzhang/archive/2011/10/07/2200631.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2011/07/16/2108470.html
Android开发——利用Cursor+CursorAdapter实现界面实时更新 - HalZhang
好久没有更新博客了。不是没时间写,而是太懒。而且感觉有些东西没有时间总结,之之后再想写,就想不起来了。晚上新发现一点东西,所以就及时写下来。最近利用业余时间在看Android的Download模块,看得是2.3之前版本的源码,2.3之后android就开放了一个下载管理器,并提供了一些api。不过想对下载模块有更深入的了解还是必须自己花点时间看看downloadprovider的源码。相信会收获很多。如果有时间想写写文章对downloadprovider进行分析。这篇文章不是分析download的,不过却是我从读download的源码发现的。情景分析:我们有一个Service,这个Servic
2011-07-16T15:33:00Z
2011-07-16T15:33:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】好久没有更新博客了。不是没时间写,而是太懒。而且感觉有些东西没有时间总结,之之后再想写,就想不起来了。晚上新发现一点东西,所以就及时写下来。最近利用业余时间在看Android的Download模块,看得是2.3之前版本的源码,2.3之后android就开放了一个下载管理器,并提供了一些api。不过想对下载模块有更深入的了解还是必须自己花点时间看看downloadprovider的源码。相信会收获很多。如果有时间想写写文章对downloadprovider进行分析。这篇文章不是分析download的,不过却是我从读download的源码发现的。情景分析:我们有一个Service,这个Servic <a href="https://www.cnblogs.com/halzhang/archive/2011/07/16/2108470.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2011/03/20/1989287.html
Android开发——MediaPlayer源码不完整分析 - HalZhang
因为MediaPlayer的源码比较多,所以只能来一个不完整分析了。 转载请注明出处:http://www.cnblogs.com/halzhang 前段时间在工作中遇到一个问题就是MediaPlayer的播放网络流媒体的时候,当没有完全下载完毕的时,我们调用seekTo的时候会触发OnCompletionListener,你们懂的咯,这样就直接播放下一首了。挺纠结的,所以就决定看看mediapl...
2011-03-20T03:31:00Z
2011-03-20T03:31:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】因为MediaPlayer的源码比较多,所以只能来一个不完整分析了。 转载请注明出处:http://www.cnblogs.com/halzhang 前段时间在工作中遇到一个问题就是MediaPlayer的播放网络流媒体的时候,当没有完全下载完毕的时,我们调用seekTo的时候会触发OnCompletionListener,你们懂的咯,这样就直接播放下一首了。挺纠结的,所以就决定看看mediapl... <a href="https://www.cnblogs.com/halzhang/archive/2011/03/20/1989287.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2011/03/10/1980319.html
Android学习——MediaScanner源码分析 - HalZhang
神马是MediaScanner呢?在Android的SDK里面是看不到这个类的,因为被google隐藏了。通过Android的源码我们可以看到MediaScanner的类注解多了一个@hide的标注。所以对于一般应用开发者,此文意义不是很大,大家可以绕道。 在前两篇文章中,最后我们都了解了Android的媒体文件的扫描是在MediaScannerService中调用MediaScanner的sca...
2011-03-10T15:35:00Z
2011-03-10T15:35:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】神马是MediaScanner呢?在Android的SDK里面是看不到这个类的,因为被google隐藏了。通过Android的源码我们可以看到MediaScanner的类注解多了一个@hide的标注。所以对于一般应用开发者,此文意义不是很大,大家可以绕道。 在前两篇文章中,最后我们都了解了Android的媒体文件的扫描是在MediaScannerService中调用MediaScanner的sca... <a href="https://www.cnblogs.com/halzhang/archive/2011/03/10/1980319.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2011/03/08/1977314.html
Android开发——MediaProvider源码分析(2) - HalZhang
转载请注明出处! 欲读此文,先读上文:MediaProvider源码分析(1) ----------------------START--------------------------- 在上一篇文章中说到系统当接收到扫描请求广播的时候就会调用scan或者scanFile去扫描手机(手机内存和sdcard)中的媒体文件。这两个方法都是启动MediaScannerService这个服务来完成扫描任...
2011-03-08T07:25:00Z
2011-03-08T07:25:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】转载请注明出处! 欲读此文,先读上文:MediaProvider源码分析(1) ----------------------START--------------------------- 在上一篇文章中说到系统当接收到扫描请求广播的时候就会调用scan或者scanFile去扫描手机(手机内存和sdcard)中的媒体文件。这两个方法都是启动MediaScannerService这个服务来完成扫描任... <a href="https://www.cnblogs.com/halzhang/archive/2011/03/08/1977314.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2011/03/07/1976178.html
Android开发——MediaProvider源码分析(1) - HalZhang
转载请注明出处。 --------------START------------ MediaProvider包括五个类: com.android.providers.media.MediaProvider com.android.providers.media.MediaScannerCursor com.android.providers.media.MediaScannerReceiver c...
2011-03-07T12:40:00Z
2011-03-07T12:40:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】转载请注明出处。 --------------START------------ MediaProvider包括五个类: com.android.providers.media.MediaProvider com.android.providers.media.MediaScannerCursor com.android.providers.media.MediaScannerReceiver c... <a href="https://www.cnblogs.com/halzhang/archive/2011/03/07/1976178.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2011/01/18/1938752.html
Android开发——Android搜索框架(二) - HalZhang
上一篇:Android开发——Android搜索框架(一) 距离上一篇文章有段时间了,唉。 接着上一篇文章,现在说说如何在搜索的时候弹出搜索历史提示。 1.创建搜索建议提供者 Android已经为我们创建了一个默认的,我们只需要继承 SearchRecentSuggestionProvider 就稍做修改就可以了。 见代码: 2.配置searchable.xml 参数说明:android:...
2011-01-18T15:40:00Z
2011-01-18T15:40:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】上一篇:Android开发——Android搜索框架(一) 距离上一篇文章有段时间了,唉。 接着上一篇文章,现在说说如何在搜索的时候弹出搜索历史提示。 1.创建搜索建议提供者 Android已经为我们创建了一个默认的,我们只需要继承 SearchRecentSuggestionProvider 就稍做修改就可以了。 见代码: 2.配置searchable.xml 参数说明:android:... <a href="https://www.cnblogs.com/halzhang/archive/2011/01/18/1938752.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2011/01/05/1926771.html
[转]activity的启动方式(launch mode) - HalZhang
在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 它们主要有如下不同: 1. 如何决定所属task “standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACT...
2011-01-05T12:55:00Z
2011-01-05T12:55:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 它们主要有如下不同: 1. 如何决定所属task “standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACT... <a href="https://www.cnblogs.com/halzhang/archive/2011/01/05/1926771.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2010/12/05/1896791.html
Android开发——09Google I/O之让Android UI性能更高效(1) - HalZhang
一、前言 前几天发现09年Google IO大会关于移动应用方面的主题有一些不错的PPT,对移动应用开发很有帮助。自己看了一些,边看边和大家分享。既然是PPT就很简化了,我会根据实际情况写一些Demo供大家参考。 Android在UI优化方面可以从以下五个方面入手: Adapter优化 背景和图片优化 绘图优化 视图和布局优化 内存分配优化 二、Adapter优化 什么是Adapter,可以...
2010-12-05T03:14:00Z
2010-12-05T03:14:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】一、前言 前几天发现09年Google IO大会关于移动应用方面的主题有一些不错的PPT,对移动应用开发很有帮助。自己看了一些,边看边和大家分享。既然是PPT就很简化了,我会根据实际情况写一些Demo供大家参考。 Android在UI优化方面可以从以下五个方面入手: Adapter优化 背景和图片优化 绘图优化 视图和布局优化 内存分配优化 二、Adapter优化 什么是Adapter,可以... <a href="https://www.cnblogs.com/halzhang/archive/2010/12/05/1896791.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/halzhang/archive/2010/11/28/1890637.html
Android开发——说说Adapter那点事 - HalZhang
Adapter在Android中占据一个重要的角色,它是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如图1直观的表达了Data、Adapter、View三者的关系。 图1 Adapter、数据、UI三者关系(PS:此图来自Google I/O) 一、Android中Adapter   图2:Andro...
2010-11-28T15:47:00Z
2010-11-28T15:47:00Z
HalZhang
https://www.cnblogs.com/halzhang/
【摘要】Adapter在Android中占据一个重要的角色,它是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如图1直观的表达了Data、Adapter、View三者的关系。 图1 Adapter、数据、UI三者关系(PS:此图来自Google I/O) 一、Android中Adapter   图2:Andro... <a href="https://www.cnblogs.com/halzhang/archive/2010/11/28/1890637.html" target="_blank">阅读全文</a>