代码改变世界

随笔分类 -  Android学习

RecyclerView 介绍 02 – 重要概念

2015-04-21 18:31 by HalZhang, 7399 阅读, 收藏, 编辑
摘要: 几个概念RecyclerView是一个ViewGroup;LayoutManager控制RecyclerView的ChildView的布局显示,childview由Recycler提供以及管理;Recycler具有两级缓存,Scrap和RecycledViewPool,通过Detach以及Remov... 阅读全文

AndroidTips:解决Dialog全屏显示以及Dialog显示自动弹出输入法

2015-03-03 18:21 by HalZhang, 8640 阅读, 收藏, 编辑
摘要: 继承实现一个dialog,并在onCreate里面做处理。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layo... 阅读全文

RecyclerView 介绍 01

2015-02-27 18:17 by HalZhang, 910 阅读, 收藏, 编辑
摘要: RecyclerView是Android support v7里面是一个自定义控件。用来显示大量数据集合。类似ListView和GridView这两个控件,RecyclerView同样可以实现,甚至更好。以前我们在实现ListView和GridView的时候,都会定义一个ViewHolder用于优化... 阅读全文

高效使用位图

2013-05-18 10:34 by HalZhang, 1989 阅读, 收藏, 编辑
摘要: 如何有效的使用位图,避免OOM,Android Training说了很明白了,主要有四点:1、有效的利用大图片根据实际应用情况,加载位图,不要浪费。比如,在一个100*100的ImageView,完全加载一个1000*1000的位图,这就真的很浪费了。应该根据实际大小需求,计算出inSampleSize再去Decode位图,这样很省内存。2、在非UI线程处理位图这个大家都懂,不多说。3、使用缓存利用LruCache和DiskLruCache,两者结合使用,就像多级缓存一样。在实际使用中,根据需要计算出缓存空间大小,同事避免类似横竖屏切换,界面重新初始化,导致缓存失效。4、有效管理位图内存这个需 阅读全文

说说内存泄露那点事

2013-05-09 19:21 by HalZhang, 2470 阅读, 收藏, 编辑
摘要: 先看看一个例子: 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);... 阅读全文

Android开发——利用Cursor+CursorAdapter实现界面实时更新

2011-07-16 23:33 by HalZhang, 16511 阅读, 收藏, 编辑
摘要: 好久没有更新博客了。不是没时间写,而是太懒。而且感觉有些东西没有时间总结,之之后再想写,就想不起来了。晚上新发现一点东西,所以就及时写下来。最近利用业余时间在看Android的Download模块,看得是2.3之前版本的源码,2.3之后android就开放了一个下载管理器,并提供了一些api。不过想对下载模块有更深入的了解还是必须自己花点时间看看downloadprovider的源码。相信会收获很多。如果有时间想写写文章对downloadprovider进行分析。这篇文章不是分析download的,不过却是我从读download的源码发现的。情景分析:我们有一个Service,这个Servic 阅读全文

Android学习——MediaScanner源码分析

2011-03-10 23:35 by HalZhang, 11260 阅读, 收藏, 编辑
摘要: 神马是MediaScanner呢?在Android的SDK里面是看不到这个类的,因为被google隐藏了。通过Android的源码我们可以看到MediaScanner的类注解多了一个@hide的标注。所以对于一般应用开发者,此文意义不是很大,大家可以绕道。 在前两篇文章中,最后我们都了解了Android的媒体文件的扫描是在MediaScannerService中调用MediaScanner的sca... 阅读全文

Android开发——MediaProvider源码分析(2)

2011-03-08 15:25 by HalZhang, 7381 阅读, 收藏, 编辑
摘要: 转载请注明出处! 欲读此文,先读上文:MediaProvider源码分析(1) ----------------------START--------------------------- 在上一篇文章中说到系统当接收到扫描请求广播的时候就会调用scan或者scanFile去扫描手机(手机内存和sdcard)中的媒体文件。这两个方法都是启动MediaScannerService这个服务来完成扫描任... 阅读全文

Android开发——MediaProvider源码分析(1)

2011-03-07 20:40 by HalZhang, 16830 阅读, 收藏, 编辑
摘要: 转载请注明出处。 --------------START------------ MediaProvider包括五个类: com.android.providers.media.MediaProvider com.android.providers.media.MediaScannerCursor com.android.providers.media.MediaScannerReceiver c... 阅读全文

Android开发——Android搜索框架(二)

2011-01-18 23:40 by HalZhang, 5956 阅读, 收藏, 编辑
摘要: 上一篇:Android开发——Android搜索框架(一) 距离上一篇文章有段时间了,唉。 接着上一篇文章,现在说说如何在搜索的时候弹出搜索历史提示。 1.创建搜索建议提供者 Android已经为我们创建了一个默认的,我们只需要继承 SearchRecentSuggestionProvider 就稍做修改就可以了。 见代码: 2.配置searchable.xml 参数说明:android:... 阅读全文

[转]activity的启动方式(launch mode)

2011-01-05 20:55 by HalZhang, 3739 阅读, 收藏, 编辑
摘要: 在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 它们主要有如下不同: 1. 如何决定所属task “standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACT... 阅读全文

Android开发——09Google I/O之让Android UI性能更高效(1)

2010-12-05 11:14 by HalZhang, 14121 阅读, 收藏, 编辑
摘要: 一、前言 前几天发现09年Google IO大会关于移动应用方面的主题有一些不错的PPT,对移动应用开发很有帮助。自己看了一些,边看边和大家分享。既然是PPT就很简化了,我会根据实际情况写一些Demo供大家参考。 Android在UI优化方面可以从以下五个方面入手: Adapter优化 背景和图片优化 绘图优化 视图和布局优化 内存分配优化 二、Adapter优化 什么是Adapter,可以... 阅读全文

Android开发——说说Adapter那点事

2010-11-28 23:47 by HalZhang, 33430 阅读, 收藏, 编辑
摘要: Adapter在Android中占据一个重要的角色,它是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如图1直观的表达了Data、Adapter、View三者的关系。 图1 Adapter、数据、UI三者关系(PS:此图来自Google I/O) 一、Android中Adapter   图2:Andro... 阅读全文

Android开发——Android搜索框架(一)

2010-09-13 17:10 by HalZhang, 34003 阅读, 收藏, 编辑
摘要: Android是google的产品,所以自然是少不了搜索。先看看Android一些应用中的搜索对话框。 图1 Android中的全局搜索 图2 联系人搜索 图3 音乐搜索 以上都是通过按下实体键盘上的搜索按钮弹出的一个搜索对话框,当然搜索关键词提示是少不了的。如何实现呢?慢慢来!呵呵。 一、配置搜索描述文件 在res中的xml文件加创建sreachable.xml,内容如下: 二、创建Sea... 阅读全文

Android开发——浅谈onInterceptTouchEvent、onTouchEvent与onTouch

2010-08-18 16:50 by HalZhang, 12512 阅读, 收藏, 编辑
摘要: 一、onTouch onTouch是View中OnTouchListener接口中的方法,处理View及其子类被touch是的事件处理。当然,前提是touch时间能够传递到指定的view。Q1:为什么会传递不到呢? 二、onTouchEventonTouchEvent同样也是在view中定义的一个方法。处理传递到view 的手势事件。手势事件类型包括ACTION_DOWN,ACTION_MOVE... 阅读全文

Android开发——android调试工具集【转】

2010-08-11 09:54 by HalZhang, 7410 阅读, 收藏, 编辑
摘要: 1. 查看当前堆栈 1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系 2) 方法: new Exception(“print trace”).printStackTrace(); 2. MethodTracing 1) 功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等 2) 方法: a) 在程序代码中加入追踪开关 b)... 阅读全文

Android开发——使用Gallery实现“多级联动”

2010-08-07 09:14 by HalZhang, 7835 阅读, 收藏, 编辑
摘要: 本文将讲解利用两个Gallery实现类似多级联动的功能。先看图: ,一个Gallery是歌曲专辑图片,另一个Gallery是专辑的歌曲。滑动专辑Gallery,下面的歌曲也会随之发生变动。 一、布局。 主要的布局是有两个相对布局+两个Gallery组成的: 二、Gallery的适配器在android中适配器很好的实现了MVC思想,它很好的为某些组件提供了数据和view的实现。此处我们需要通过继... 阅读全文

Android开发——构建自定义组件【转】

2010-08-05 10:42 by HalZhang, 4846 阅读, 收藏, 编辑
摘要: 来自:http://blog.csdn.net/shiqx429/archive/2009/02/06/3865581.aspxAndroid中,你的应用程序程序与View类组件有着一种固定的联系,例如按钮(Button)、文本框(TextView),可编辑文本框(EditText),列表框(ListView),复选框(CheckBox),单选框(RadioButton),滚动条(Gallery)... 阅读全文

Android开发——NDK开发入门

2010-08-03 17:13 by HalZhang, 10618 阅读, 收藏, 编辑
摘要: 注:本文并非原创,参考了几位前辈的文章,本文只是稍作整理。 参考1:Eclipse配置NDK_R4开发环境(集成Cygwin 、CDT) 分别介绍了在window和linux下配置eclipse自动化编译ndk。 参考2:android NDK 开发环境配置 介绍了新版ndk的配置。 参考3:史上最强NDK入门项目实战 详细介绍了ndk HelloWorld的开发过程,不过ndk版本比... 阅读全文

Android开发——Activity(活动)的生命周期(下)

2010-05-31 14:29 by HalZhang, 2975 阅读, 收藏, 编辑
摘要: 接上文:《Android开发——Activity(活动)的生命周期(上)》 四、监听活动状态变化 为了确保对活动状态变化作出正确的响应,Android提供一个系列的事件控制器,监听活动的在整个生命周期的状态变化。活动的生命周期进一步细化,可以分为:全周期(Full Lifetime)>可视期(Visible Lifetime)>激活期(Active Lifetime),如下图所示:... 阅读全文