Android
iteye_21252
这个作者很懒,什么都没留下…
展开
-
Pretty RatingBar
Android is a great development platform. Numerous built-in components and widgets simplify developer’s life greatly, and Intents are just awesome — in fact, I added sharing of content through Facebook...原创 2010-08-22 17:08:08 · 133 阅读 · 0 评论 -
Timer和TimerTask详解
1.概览Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。简单的一个例程:import java.util.Timer;import java.util.TimerTask;/*** Simple demo that uses j...原创 2010-07-27 20:56:21 · 71 阅读 · 0 评论 -
只起一个Activity实例
在一个Activity中,多次调用startActivity()来启动另一个Activity,要想只生成一个Activity实例,方法有两种。[b]方法一:设置起动模式[/b]一个Activity有四种启动模式:standard, singleTop, singleTask, singleInstance。standard: 标准模式,一调用startActivity()方法就会产...2010-07-29 11:02:40 · 302 阅读 · 0 评论 -
使用Alarm
Alarm是在预定的时间触发Intent的,独立于应用程序的提醒用户的方式。当这个Alarm触发后,就会广播这个Intent,如果应用程序没有起启,就会启动这个应用程序,而不需要就用程序被打开或者处于活动状态。通过AlarmManager来管理所有的Alarm。[code="java"]Intent intent = new Intent(this, OneShotAlarm.clas...2010-07-31 21:18:43 · 119 阅读 · 0 评论 -
读取存储卡中的Media数据
在android中,要读取SDcard和内部存储卡中的Media数据,可以直接用File类去遍历读取,但android还提供了一个媒休数据的内容提供者:MediaStore.Audio.Media代码如下:[code="java"]cursor =getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_U...2010-08-03 09:44:33 · 179 阅读 · 0 评论 -
双击运行Android模拟器、创建SDcard、AVD、安装APK文件、上传文件到模拟器
运行环境:1、安装JDK2、安装Android SDK建议:添加JDK、SDK的环境变量,将路径添加到path环境变量中。配置步骤:1、进入cmd命令行模式下,判断JDK和Android是否安装和配置成功(判断JDK是否安装好,请输入java -version,如果能返回java的版本信息,则安装成功)(判断Android是否安装好,请输入A...原创 2010-08-04 11:45:31 · 104 阅读 · 0 评论 -
把android sdk 1.5源代码加入SDK
开发、调试Android程序的时候有时候需要看一下android sdk的源代码,Goolge在发布SDK时没有把源代码包含进去着实有点让人费解,对很多人来说Git无疑是个生涩的东西,而 framework中所有Java代码加起来打个包也就是20多MB。更要命的是,Android Eclipse plugin (ADT)不允许我们在项目属性中attach源代码到android.jar上...原创 2010-08-07 10:02:41 · 155 阅读 · 0 评论 -
AIDL和Service使用心得
Service是在后台运行的程序,只是没有界面,所以常常用来进行下载,上传,音乐播放等等操作。这时,我们常常把Service运行一个单独的进程中。但常常我们的业务需要我们的前台Activity与后台的Service进行交互、进行通信,比如下载进度条。[b]Activity和Service的通信的方式[/b]第一种是用广播intent,这种方式在显示进度条的时间不是太好,因为这时要发送大量的...2010-08-11 14:16:06 · 167 阅读 · 0 评论 -
什么时候调用Dialog的dismiss()方法
调用Dialog的dismiss()方法的方式:1. 重写Dialog的onKeyDown()方法里进行调用: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { Log.d(Constant.TAG,"dialog onKeyDown"); if(keyCod...2012-02-03 16:27:36 · 512 阅读 · 0 评论 -
FLAG_ACTIVITY_NEW_TASK和affinity亲和力
一直以为在intent里加了FLAG_ACTIVITY_NEW_TASK标记,启动的Activity会被加入一个新的Task栈里,这种理解是错误的。 加了这个FLAG_ACTIVITY_NEW_TASK标记,不一定会启动一个新的栈,其步骤是:先查找有没有和这个Activity的affinity相同的task栈,如果有,则直接在这个task栈里启动,不然才创建一个新的task栈。详情请...原创 2012-02-06 14:07:39 · 112 阅读 · 0 评论 -
Activity之间的切换动画
从android系统2.1以后,android新增了方法:overridePendingTransition(int enterAnim, int exitAnim),用于改变Activity之间的切换动画。 从样式里进行改变切换动画这个主要是加在样式文件里进行更改,代码如下: <style name="Theme.Test" parent="@android:style...2012-02-15 10:53:26 · 142 阅读 · 0 评论 -
onSaveInstanceState(Bundle outState)的调用时机
Activity的方法onSaveInstanceState(Bundle outState),按照文档里说的,这个方法是在内存不够时,系统要强制杀掉这个Activity时,进行调用的。 但经过我的测试,发现这个方法并不是在系统内存不够时,要杀掉Activity时,才调用的。 测试结果:1. 只要Activity不finish,Activity进入后台(比如Home键,跳转到其...2012-02-15 11:10:36 · 241 阅读 · 0 评论 -
浅析QQGame
通过分析QQGame的项目,发现其存在两种方式:1. 不安装游戏apk,直接启动我这里只说其原理,详情讲查看:探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法其原理是: 1. 把apk里的class文件通过DexClassLoader把apk里的class文件全部加载到java虚拟机里,如果要使用其中的某个class时,就要使用反射来调用。 2. 如果这个类是...2012-03-01 14:31:47 · 221 阅读 · 0 评论 -
Fragment研究2
几个类的结构的研究: 对上图的讲解: 1. FragmentManagerImpl里有一个后退栈mBackStack,后退出栈里的对象是BackStackRecord,不是Fragment。 2. BackStackRecord继承FragmentTransation抽象类,同时实现BackStackEntry和Runnable接口。我们在程序里要进行add,remove,...2011-11-24 10:43:35 · 126 阅读 · 0 评论 -
Eclipse Indigo设置Courier New字体
网上的教程如下: 步骤如下:1. 用WinRAR找到并打开org.eclipse.jface_3.7.0.I20110522-1430.jar具体位置:$Eclipse目录$/plugins/org.eclipse.jface_3.7.0.I20110522-1430.jar2.找到并修改字体属性依次展开org/eclipse/jface/resources,找到Windows7(jf...2011-11-25 14:25:52 · 100 阅读 · 0 评论 -
Ant自动打包2(打特殊厂商的包)
由于公司内置的需要,我们的程序要针对不同的厂商打不同的apk,而且不同厂商之间还有一些差别,所以我在原来打包的基础上进行了扩展,支持不同厂商。 为了便于扩展和维护,我把特殊厂商的代码与原来正常打包的代码进行分离,同时让打包者可以自动选择当前要打包的厂商。 改动的几个地方: 1. 把不同厂商要改动的地方写在宏(就相当于java里的方法)里面,而这些所有的宏,都放在一个当独的s...2011-11-29 15:08:32 · 92 阅读 · 0 评论 -
Activity与Service通信
Activity与Service通信的方式有三种: 继承Binder类 这个方式只有当你的Acitivity和Service处于同一个Application和进程时,才可以用,比如你后台有一个播放背景音乐的Service,这时就可以用这种方式来进行通信。用例子来说明其使用方法: 1. 来看Service的写法: public class LocalService e...2011-12-02 14:46:22 · 96 阅读 · 0 评论 -
保存EditText的文本内容
当旋转手机时,如果想要保存EditText的文本的内容,有三种方法:一: 只要这个EditText设置了android:id属性就会自动保存。二: 可以设置EditText的android:freezesText="true",再到相应的Activity中加上如下两个方法:CharSequence getSavedText(){ return ((TextView)...2010-07-26 22:12:01 · 797 阅读 · 0 评论 -
自定义主题theme
自定义主题很容易,先建一个res/values/styles.xml文件,再到这个文件中加入主题样式文件。style标签还可以继承,可以继承父类中的所有的元素。代码如下:[code="java"] @drawable/filled_box [/code]...2010-07-20 20:17:45 · 166 阅读 · 0 评论 -
学习别人的UI
对于程序员来说,最头痛的就是UI界面的设计,而在android中,只能自已做界面。有时就在想,别人是怎么写出那样好看的界面的。Android给我们提供了一个很好的工具,可以查看正在运行的界面的设计:hierarchyviewer.bat使用方法: 第一:运行一个模拟器,并打开要查看的UI界面。 第二:运行android-sdk-windows\tools包下的hiera...2010-08-23 12:09:09 · 87 阅读 · 0 评论 -
ListView的一点小知识
在使用ListView时,常常是与其他的layout一起使用,比如要实现分页,加一个标题。我们最快能想到的办法是:写一个LinearLayout布局来实现,但这里就有一个问题,当我们向下翻ListView的时候,标题不会隐藏,其下一页的按钮也不会出来。 后来我就想,如果把ListView的第一个item变成标题或是把最后一个item变成下一页的按钮,不就可以了吗。这样是可以实现,但我们根本...2010-08-24 10:20:24 · 87 阅读 · 0 评论 -
density, dip, px, 分辨率的一点理解
主要的知识在:[url]http://xy0811.spaces.live.com/Blog/cns!F8AECD2A067A6B17!1508.entry[/url]我这里只说说我自己的理解:先说清楚一点:什么是显示点阵显示点阵就是指在显示屏上长和宽各能显示出多少个像素点,或者在LED显示屏上长和宽有多少个LED会同时发光。在显示屏上,真正能够显示出来的像素点是有限的,并不是说,...2010-08-24 23:50:50 · 182 阅读 · 0 评论 -
Bitmap OutOfMemery
通过GridView的getLastVisiblePosition()和getFirstVisiblePosition()方法确认当前GridView控件中将会显示Dataset中的数据范围,在该范围之内的图片应该是已经解码过的,而不在该区间中的图片,可以在适当的时候使用recycle()方法回收。实现方式可以使用HashMap来存储对应的ID和BitmapHashMap picMap,Int...原创 2010-08-27 18:43:25 · 105 阅读 · 0 评论 -
TableLaout样式
要想用TableLaout来模仿九宫格的样式,其中有两个难点:[b]一:边框的设置[/b] 每一行中的分隔线,可以直接加在背景图片上。 每行之间的分隔线,可以加一个View对象,对于设置背景就可以了[b]二:点击某一项后,颜色提示[/b] 对于点击的颜色提示,可以在每cell中的ViewGroup上加背景,把其背景设置为一个根据其状态发生变化的Selector。...2010-10-12 10:41:28 · 234 阅读 · 0 评论 -
渐进式下载和流式下载有什么区别
流式下载 下载边播放的BT软件,下载时必须要从电影的开头下载,而并非是其它BT软件的下载方式.,这种可以边下载边播放的下载 方式,就可以称为流式下载在多媒体内容如SVG文件的渐进式下载中,客户缓冲一些数据一段时间,因此可以及时地对内容解码和呈示。为了客户在适当的时间开始呈示文件的内容,客户需要正确地估算启动延迟时间。在发送数据之前或同时,服务器向客户提供表示内容特性的信息,如一些或所...原创 2010-10-23 12:06:09 · 623 阅读 · 0 评论 -
Log的tag的设置
android输出日志的方法如下: int android.util.Log.d(String tag, String msg)设置好tag的值可以更加方便于日志的查看,看具体的使用例子: 1. 工具类: public class LogUtil { public static String makeLogTag(Class cls) { ...2011-12-09 15:27:18 · 4290 阅读 · 0 评论 -
Androidpn里的Xmpp的理解
XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。用xmpp来实现android的push功能,感觉有点大材小用了,xmpp本身是一种即时通信协议。 xmpp是一种用于即时通信的协议,使用过程有点类似于我们使用QQ的过程,其使用过程分为三步: 1. 连接服务器,...2011-12-09 20:31:38 · 146 阅读 · 0 评论 -
Androidpn的框架浅析
开发部署方法: 1. 下载androidpn的客户端和服务器:地址为:http://sourceforge.net/projects/androidpn/files/ 2. 解压服务器端,点击运行,访问:http://127.0.0.1:7070/user.do,就可以看服务器端的管理页面,用这个管理页面,就要向客户端push消息。 3. 把客户端导入到eclipse工程中,修改...原创 2011-12-11 13:47:51 · 143 阅读 · 0 评论 -
Android换肤apk
在android系统中,每一个application是一个进程和一个用户,不同的进程间是不能互相访问的。如果想让两个程序之间可以相互访问其资源,就可以让这两个apk运行在同一个进程里就可以。要让两个apk运行在同一个进程里,要满足两个条件:相同的sharedUserId和用相同的证书进行签名 默认情况下,如果不配android:sharedUserId,则其userid与包名相同,所...2011-12-11 15:30:40 · 149 阅读 · 0 评论 -
Ant自动打包
Ant使用 在ant的官网http://ant.apache.org进行下载后apache-ant-1.8.2包解压(存放的路径不要有中文字符)把ant里的lib设置到环境变量:E:\Android\apache-ant-1.8.2\lib这样在命令行里就可以直接使用ant学习资料:1. ant使用指南.rar2. 文档:apache-ant-1.8.2/doc...2011-08-23 15:56:42 · 107 阅读 · 0 评论 -
Intent的FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT
Activity的两种启动模式:FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT 1. 如果已经启动了四个Activity:A,B,C和D。在D Activity里,我们要跳到B Activity,同时希望C finish掉,可以在startActivity(intent)里的intent里添加flags标记,如下所示:Int...2011-12-18 14:50:43 · 508 阅读 · 0 评论 -
引用主题属性
文档里写的引用主题属性的方法如下:?[<package_name>:][<resource_type>/]<resource_name>这种引用方法只能在xml文件中使用。?表示引用属性,当使用这个属性的时候,资源工具会从当前的主题样式中查找这个资源名称,可以不用指名具体是类型。用于主题的样式如下:<style name...2011-12-28 18:09:34 · 212 阅读 · 0 评论 -
ListActivity简介
[code="java"]public class ListActivityextends Activityjava.lang.Object android.content.Context android.content.ContextWrapper android.view.ContextThemeWrapper a...原创 2010-07-19 19:10:45 · 174 阅读 · 0 评论 -
获取应用程序中的Activity,Service等
在android中有一个PackageManager类,通过这个类就可以找到当前应用下的Activity和Service。如果只要查找其中的一部分Activity和Service,可以通过Intent来过滤。代码如下:[code="java"]protected List getData(){ List myData = new ArrayList(); ...2010-07-19 20:34:57 · 118 阅读 · 0 评论 -
修饰界面顶层的样式
[b]修改顶层样式[/b]要修改一个layout界面的顶层样式,可以用activity类中Window属性。下面的代码是向顶层中加入一个感叹标志:[code="java"]@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...2010-07-20 18:50:23 · 153 阅读 · 0 评论 -
PopupWindow自适应布局
Android自带的Menu菜单,常常无法满足我们的需求,所以就只有自己写menu菜单,通常的选择是用PopupWindow来实现自定义的menu菜单,先看代码,再来说明要注意的几点: View menuView = inflater.inflate(R.layout.menu_popwindow, null);final PopupWindow p = new PopupWin...2011-12-04 18:24:44 · 337 阅读 · 0 评论