android 高手进阶教程
文章平均质量分 82
SpeedyCoder
这个作者很懒,什么都没留下…
展开
-
Android 内存泄漏调试
一、概述 1 二、Android(Java)中常见的容易引起内存泄漏的不良代码 1 (一) 查询数据库没有关闭游标 2 (二) 构造Adapter时,没有使用缓存的 convertView 3 (三) Bitmap对象不在使用时调用recycle()释放内存 4 (四) 释放对象的引用 4 (五) 其他 5 三、内存监测工具 DDMS --> Heap 5 四、内存分析工具 MAT(Memor转载 2012-06-26 11:20:26 · 1231 阅读 · 1 评论 -
Android高手进阶教程(二十七)之---基于ViewFlipper实现的自定义新手指引控件.
第一步:新建Android工程ViewFlipperDemo:第二步:新建AdverView.java代码如下:package com.tutor.viewflipper;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFacto转载 2012-06-26 11:56:47 · 655 阅读 · 0 评论 -
Apad Qzone项目总结(二)---换肤功能实现!!!
Hi,大家好,快元旦啦,提前祝大家元旦快乐,(*^__^*) 嘻嘻,今天给大家分享的是Apad Qzone换肤功能的实现,我们首先看下效果:图1:默认的皮肤.图2:点击菜单护肤按钮,应用更换皮肤.通过上面的效果图可以看出Apad Qzone的换肤功能其实是很简单实现的,由于整个应用采取了单Activity实现方式,更换背景其实就是实现了更换主程序的Activity的背景。转载 2012-07-14 14:38:26 · 966 阅读 · 0 评论 -
仿新浪微博的ListView下拉更新功能
由于最近做的项目中也用到了这个功能,今天刚好实现了下,就趁现在有时间写篇博客分享下。在做的时候也参考了下别人的代码,毕竟站在巨人的肩膀上才会是自己更加强大。哈哈!先看看新浪的下拉更新是什么样的吧! OK,今天我们要实现的就是上面的下拉刷新功能。 首先实现下拉刷新的布局文件 layout/head.xml<LinearLayout xm转载 2012-07-14 14:46:48 · 3579 阅读 · 0 评论 -
android之图片异步加载并缓存到本地
在android项目中访问网络图片是非常普遍性的事情,如果我们每次请求都要访问网络来获取图片,会非常耗费流量,而且图片占用内存空间也比较大,图片过多且不释放的话很容易造成内存溢出。针对上面遇到的两个问题,首先耗费流量我们可以将图片第一次加载上面缓存到本地,以后如果本地有就直接从本地加载。图片过多造成内存溢出,这个是最不容易解决的,要想一些好的缓存策略,比如大图片使用LRU缓存策略或懒加载缓存策略。转载 2012-07-16 23:09:24 · 592 阅读 · 0 评论 -
android 大图片拖拽缩放
由于最近项目忙,博客一直没有时间更新,今天有点时间就连续更新两篇吧,过过瘾。 这篇图片拖拽缩放也是我在项目中用到的,今天整理一下,将源码奉献给大家,希望对大家以后碰到相似的问题有帮助。 这篇就不做过多介绍了,直接上源码:public class SpacePageActivity extends Activity { pr转载 2012-07-16 23:12:01 · 993 阅读 · 0 评论 -
解开Android应用程序组件Activity的"singleTask"之谜
在Android应用程序中,可以配置Activity以四种方式来启动,其中最令人迷惑的就是"singleTask"这种方式了,官方文档称以这种方式启动的Activity总是属于一个任务的根Activity。果真如此吗?本文将为你解开Activity的"singleTask"之谜。 在解开这个谜之前,我们先来简单了解一下在Android应用程序中,任务(Task)是个什么样的概念。转载 2012-08-02 20:06:46 · 809 阅读 · 0 评论 -
ViewPager实现引导界面以及进入下一个activity解决办法
这次项目中实现了用户引导滑动图片,到最后一张图片的时候,我认为理想的是同时具备以下两点:1)用户可以点击上面的“开始使用”这样的按钮可以进入主界面;2)用户接着滑动下一个图片的手势而进入主界面;3)用户在引导界面点击返回键的时候直接进入主界面;增加“开始使用”按钮方式:可以定义一个layout的xml再加载:一个LinearLayout,里面一个button。默认but转载 2012-07-25 11:51:25 · 1139 阅读 · 0 评论 -
Android Launcher研究(二)-----------Launcher为何物,究竟是干什么的?
在上一节,我讲了如何下载Launcher的教程,今天这一节,我将重点讲一下什么Launcher,究竟它是什么神秘东东?Launcher俗称HomeScreen,也就是我们启动Android手机,第一眼看到的应用程序,而这个应用程序是比较特殊而且任务艰巨的。它负责了我们除了应用本身操作以外的所有操作,它负责了我们有几个桌面,点击应用图标启动应用程序,长时间按桌面出现上下文菜单,长时间按桌转载 2012-07-27 09:00:15 · 908 阅读 · 0 评论 -
【Android进阶】嵌套TabHost (TabHost中放TabHost,类似二级目录、二级树)
今天讲一下,如何在TabHost中,再放TabHost。 先来看一下效果。 一层TabHost 两层Tabhost (内部TabHots在上面) 两层TabHost (内层TabHots在下面) 下面说一下代码,一共3个 java类,3个xml布局文件。 看一下主画面:main.xml<TabHost xmlns:android="ht转载 2012-07-27 08:16:41 · 1682 阅读 · 0 评论 -
【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
众所周知,通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下PackageManager packageManager = this.getPackageManager();List packageInfoList = packageManager.getInstalledPackages(0);通过以上方法,可以得到手机中安装的所有应用程序,既包括转载 2012-07-27 08:43:01 · 1571 阅读 · 0 评论 -
Android Launcher研究(三)-----------列出所安装的应用,点击进入相应的应用!
大家好,我今天给大家简单讲一下Launcher里如何列出所有安装的应用的,我们点击Launcher的抽屉(SlidingDrawer)就会出现所有安装的应用列表(当然Widget,Launcher本身除外).并且点击应用图标进入 相关应用。我这里就先简单的用一个GridView来显示应用。老样子我还会写一个简单的Demo让大家理解。大家跟着我的步骤来。第一步:新建一个Android工程命名转载 2012-07-27 09:02:36 · 1209 阅读 · 0 评论 -
Android Launcher研究(四)-----------桌面应用快捷方式的开发!
大家好,今天我给大家分享的是Launcher桌面快捷图标的开发,我们都知道快捷图标有两部分组成,一部分是应用的图标,另一部分就是应用的名称。其实Launcher中的快捷图标只是继承了TextView控件,重绘了一下,将背景弄成浅灰色(具体是什么颜色我也不知道)的椭圆背景,显示的文字颜色则是白色。TextView有android:drawableTop;drawableBottom(上下左右我这里就转载 2012-07-27 09:05:27 · 1079 阅读 · 0 评论 -
Android Launcher研究(一)-----------图文详解手把手教你在Windows环境下下载Android源码(Launcher为例)
大家好,这篇文章我将教大家如何在Windows环境下下载Android源码,Android 自2007年11月5号发布以来,发展速度如此之快,和它走开源的路是分不开的。我们在开发中有什么不明白不清楚的,直接把Android 源码下下来研究就可以了,看源代码将会让你提升很快!在这之前大家先熟悉俩个代码版本管理工具SVN,以及Git。 SVN(Windows环境下最常用的):svn(s转载 2012-07-27 08:56:32 · 672 阅读 · 0 评论 -
Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例
注意:本文大部分内容转载自:newcj 的博客 请尊重他人劳动成果!今天在写完 “ android Notification 的使用 ”的时候,发现有几个问题,特别是设置Notification的Intent使之能够像 QQ 或其他程序一样能够正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例。当然重点便是如何设置该Activity 的 launchM转载 2012-09-26 21:34:48 · 2755 阅读 · 0 评论 -
Android APK反编译详解(附图)
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。注:本Android反编译教程,在Windows7-Ultimate-64bit 操作系统上,测试通过!下述所转载 2012-09-26 22:01:25 · 878 阅读 · 0 评论 -
Android Context 详解
Android中context可以作很多操作,但是最主要的功能是加载和访问资源。在android中有两种context,一种是application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。继承关系:区别联系: public class MyActivity exte转载 2012-09-28 18:01:28 · 469 阅读 · 0 评论 -
Android应用开发中对Bitmap的内存优化
在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。 1) 要及时回收Bitmap的内存Bitmap类有一个方法recycle(),从方法名可以看出意思是回收。这里就有疑问了,Andr转载 2012-09-13 17:44:31 · 741 阅读 · 0 评论 -
html 5获取GPS位置,Google地图显示
场景:JQuery Mobile代码片段:. $('#mylocation').live('pageshow', function () { if (navigator.onLine) { $("#mylocation_status").text('网络连接正常'); } else { $("#mylocatio转载 2012-10-05 08:45:56 · 866 阅读 · 0 评论 -
Android Looper和Handler分析
第一次接触android应用程序(这里指的是JAVA层的UI程序,也难怪了,Google放出的API就只支持JAVA应用程序了),很难搞明白内部是如何实现的。但是,从原理上分析,应该是有一个消息循环,一个消息队列,然后主线程不断得从消息队列中取得消息并处理之。然而,google封装得太厉害了,所以一时半会还是搞不清楚到底是怎么做的。本文将分析android内的looper,这个是用来封装消息循转载 2012-09-14 14:09:10 · 745 阅读 · 0 评论 -
eclipse内存分析工具MAT浅谈(一)
MAT(Memory Analyzer Tool) 是基于heap dumps来进行分析的,所以首先必须通过一定的手段得到JAVA堆的DUMP文件。JDK自带的。JConsole 或者 JMAP都是不错的工具。 准备 (·)下载eclipse3.7 (·)安装MAT插件:http://download.eclipse.org/mat/1.1/update-site/ 安装完转载 2012-09-14 11:41:10 · 673 阅读 · 0 评论 -
Android 内存优化测试
今天做了个内存优化的小测试,包括两点 1, 比较Drawable与Bitmap占用内存大小2, 比较BitmapFactory类的decodeResource方法与decodeStream方法的效率 好吧,先来看第1个测试!以下这个是测试加载1000个Drawable对象的代码,很简单的,我就不解释了!转载 2012-10-05 09:05:25 · 724 阅读 · 0 评论 -
Java:对象的强、软、弱和虚引用
本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。 1.对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、转载 2012-10-05 09:19:42 · 1035 阅读 · 0 评论 -
Android图像处理之Bitmap类
Android图像处理之Bitmap类 田海立@CSDN2011/09/08 Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。本文从应用的角度,着重介绍怎么用Bitmap来实现这些功能。 一、Bitmap的生成1.1 BitmapFactory decode出Bitma转载 2012-10-05 09:43:56 · 628 阅读 · 0 评论 -
Android高手进阶教程(二十八)之---Android ViewPager控件的使用(基于ViewPager的横向相册)!!!
大家好,相信大家用的ListView控件一定很多的,是竖向滑动的,复用convertView,我们可以加载成千上万的数据,但有时候我们会有这个需求比如相册,我们想横向滑动,并且数据有好多,这时候ViewPager控件就派上用场了,ViewPager使用时候我们需要导入第三方包android-support-v4.jar包,这是谷歌提供的,这个包里有Fragment ViewPager等控件,用户导转载 2012-09-15 15:47:22 · 1024 阅读 · 0 评论 -
Android高手进阶教程(二十七)之---基于ViewFlipper实现的自定义新手指引控件.
第一步:新建Android工程ViewFlipperDemo:第二步:新建AdverView.java代码如下:package com.tutor.viewflipper; import android.content.Context; import android.graphics.Bitmap; import android.graphic转载 2012-09-15 15:49:45 · 1124 阅读 · 0 评论 -
Android之高仿微信聊天的界面
微信的聊天界面是挺漂亮的,每条消息都带一个气泡,给人一种很清新的感觉,其实实现起来也不是那么的难,下面我们就来实现一下。 老规矩,先贴上源代码:http://download.csdn.net/detail/weidi1989/4588782 再来看一下实现的效果图: OK,下面我们来看一下整个小项目的主体结构: 下面是Activity的代码转载 2012-10-07 14:53:23 · 34139 阅读 · 18 评论 -
两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!
Hi,大家好,今天给大家分享一下Android中onInterceptTouchEvent与onTouchEvent,,记得楼主以前刚开始找工作的时候,被人问了关于Android中事件传递,当时还是菜鸟一枚,当然答不上来,被人无情的BS了。好了言归正传讲重点.onInterceptTouchEvent:onInterceptTouchEvent是在ViewGroup里面定义的。Androi转载 2012-09-15 15:55:26 · 658 阅读 · 0 评论 -
android管理wifi
首先,需要权限 WIF的状态在WifiManager中定义了常量,都是public static final int类型的,如下public static final int WIFI_STATE_DISABLEDWi-Fi is disabled.Constant Value: 1 (0x00000001)public stati转载 2012-10-07 14:45:18 · 606 阅读 · 0 评论 -
Android之BaseExpandableListAdapter使用心得(QQ续一)
前段时间跟大家分享了ExpandableListView的使用,不知道的童鞋,可以去这里看一下:http://blog.csdn.net/weidi1989/article/details/7995552 但是我最近做那个QQ项目是遇到一个问题,如果给这个ExpandableListView添加动态从网上获取的数据呢?前面跟大家分享的时候,是用了静态的数据,很好处理。大组跟小组就转载 2012-10-07 14:49:15 · 1315 阅读 · 0 评论 -
Android MVC模式
MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器。一个逻辑模型可以对于多种视图模型,比如一批统计数据你可以分别用柱状图、饼图来表示。一种视图模型也可以对于多种逻辑模型。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,而C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,这与《设计模式》中的观察者模式是完转载 2012-10-07 15:10:19 · 746 阅读 · 0 评论 -
Android NDK开发轻松入门
简介:AndroidNDK是能使Android应用开发者把从c/c++编译而来的本地代码嵌入到应用包中的一系列工具的组合。注意:AndroidNDK只能用于Android1.5及以上版本中。I. Android NDK目标:Android虚拟机允许你的应用在源码中通过JNI调用本地代码(c/c++)中实现的方法们。概括起来,这表示:--你的应用的转载 2012-09-18 10:09:56 · 605 阅读 · 0 评论 -
Android UI开发第十九篇——介绍一个开源的gifview——Android显示GIF动画
简介:android中现在没有直接显示gif的view,只能通过mediaplay来显示,且还常常不能正常显示出来,为此写了这个gifview,其用法和imageview一样使用方法:1-把GifView.jar加入你的项目。2-在xml中配置GifView的基本属性,GifView继承自View类,和Button、ImageView一样是一个UI控件。如: <c转载 2012-10-09 16:45:09 · 716 阅读 · 0 评论 -
Android UI开发第十六篇——分享一个popuwindow实例
PopupWindow在android.widget包下,弹出窗口的形式展示。官方文档对该控件的描述是:“一个弹出窗口控件,可以用来显示任意视图(View),而且会浮动在当前 活动(activity)的顶部”。PopupWindow可以让我们实现多种自定义控件,例如:menu、alertdialog等弹窗似的View。UI开发第三篇——popupwindow 中简单介绍了一些简单方法,这一篇分转载 2012-10-09 16:37:49 · 1581 阅读 · 0 评论 -
android 图片平铺实现
android屏幕的实现方式,可以让同一张图片按顺序排列成一个整张大的图片,如何实现呢?请看一下三种实现方式,建议使用第二种实现方式,简单容易维护。 (1)第一种利用系统提供的api实现 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic); //bitmap转载 2012-09-20 08:50:39 · 673 阅读 · 0 评论 -
Android 官方博客 - Android应用程序的内存分析
Dalvik虚拟机支持垃圾收集,但是这不意味着你可以不用关心内存管理。你应该格外注意移动设备的内存使用,在上面内存空间是受到限制的。在这篇 文章里面,我们来看看Android SDK里面的一些内存剖析工具(profiling tools)是如何帮助我们修整应用程序的内存使用。一些内存使用问题是很明显的,例如,如果在每次用户触摸屏幕的时候应用程序有内存泄露,将会有可能触发OutOfMemor转载 2012-10-11 21:54:52 · 784 阅读 · 0 评论 -
9.png图片的处理
1. PNG格式。 在这里不过多的讨论PNG格式的定义问题。但是.9.PNG确实是标准的PNG格式,只是在最外面一圈额外增加1px的边框,这个1px的边框就是用来定义图片中可扩展的和静态不变的区域。特别说明,left和top边框中交叉部分是可拉伸部分,未选中部分是静态区域部分。right和bottom边框中交叉部分则是内容部分(变相的相当于定义看一个内边距,神似padding功能,后转载 2012-09-23 10:21:49 · 683 阅读 · 0 评论 -
Android 图片处理特效
Android --- 图片处理的方法转换 - drawable To bitmap缩放 - Zoom圆角 - Round Corner倒影 - ReflectedbitmapPrcess code:package com.learn.games; import android.graphics.Bitmap;转载 2012-09-23 15:06:20 · 694 阅读 · 0 评论 -
Android的图像处理类Bitmap
Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。本文从应用的角度,着重介绍怎么用Bitmap来实现这些功能。一、Bitmap的生成1.1 BitmapFactory decode出Bitmap Bitmap实现在android.graphics包中。但是Bitmap类的构造函数是私有转载 2012-09-23 16:04:26 · 1727 阅读 · 0 评论 -
ScrollView中嵌套ListView
放置比较少的ListView组件效果图: Item布局文件 list_view_item.xml 布局文件的内容: xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo转载 2012-09-23 20:59:41 · 1262 阅读 · 0 评论