android
文章平均质量分 69
pipisky2006
这个作者很懒,什么都没留下…
展开
-
倒计时的AlertDialog
dialog是阻塞式的提示,但是有时并不想让他一直在,可以定时自己关闭,并且帮助用户来选择其中的某个选项“确认”或者“取消”。下面看代码吧package com.testtimerdialog;import android.app.AlertDialog;import android.app.Dialog;import android.content.Context;impo原创 2011-10-25 23:14:08 · 7779 阅读 · 0 评论 -
应用崩溃的反馈
google目前也有个项目在处理这个问题http://code.google.com/p/acra/,不过那个包有点大,好几十k呢,如果我们想自我定制下,最重要的知识点就是1.拦截UncaughtExceptionApplication.onCreate()是整个Android应用的入口方法。在该方法中执行如下代码即可拦截UncaughtException: ueHandle转载 2011-08-03 23:15:52 · 628 阅读 · 0 评论 -
自定义view
首先看看api http://developer.android.com/reference/android/view/View.html这个是和用户交互的基本组件。一个view占一个矩形框在屏幕上,并且负责绘制和事件响应。ViewGroup这个子类是基本类用于layouts,这些不可见的容器包含了views(或者其他的viewgroup)并且定义了他们的布局属性。使用Views1,原创 2011-01-24 00:21:00 · 797 阅读 · 0 评论 -
ListView特效1
public class TwoHeaderListView extends FrameLayout{ private static final String TAG = "TwoHeaderListView"; ImageView header1; ImageView header2; ListView listview; ImageView fixheader; p原创 2012-03-26 07:49:00 · 1799 阅读 · 1 评论 -
Managing Projects
Projects表现为一个容器保存着代码和资源文件。SDK工具希望工程们遵从着特定的结构这样它就可以正确的对你的工程进行编译和打包,所以强烈推荐你使用Eclipse的ADT或者android工具来创建工程。有三种类别的工程,它们共享统一的通用结构,但是在功能上各不同:Android Projectsandroid工程包含工程源文件,资源文件,ant文件,AndroidManifest文翻译 2011-08-14 19:42:31 · 783 阅读 · 0 评论 -
surfaceview
首先是api,结构如下java.lang.Object ↳android.view.View ↳android.view.SurfaceViewKnown Direct SubclassesGLSurfaceView, VideoViewvideoview是子类,所以可以用me转载 2011-06-27 22:28:00 · 1590 阅读 · 0 评论 -
磁盘空间满
一直以为磁盘空间满应该有个广播出来的了,找了半天也没有,暂时自定义了个exception,统一来处理磁盘满的情况,提示用户磁盘空间满 public class NoSpaceIOException extends Exception { /** * */ private static final long serialVersionUID = -8334480830732原创 2010-12-14 23:25:00 · 788 阅读 · 0 评论 -
滑动Scroller
public class Scroller extends Object java.lang.Object android.widget.Scroller这个类封装了滚动操作。滚动的持续时间可以通过构造函数传递,并且可以指定滚动动作的持续的最长时间。经过这段时间,滚动会自动定位到最终位置,并且通过computeScrollOffset()会得到的返回值为false,原创 2010-12-25 23:53:00 · 2273 阅读 · 0 评论 -
android定位
先说说手机定位的方式1,GPS 绝大部分手机都有GPS模块,这种方式准确度是最高的,但是缺点也很明显,1,耗电高;2,绝大部分用户默认不开启GPS模块。3,从GPS模块启动到获取第一次定位数据,可能需要比较长的时间;4,室内无法使用。需要指出的是,GPS走的是卫星通信的通道,在没有网络连接的情况下也能用。2,Network方式,基站和wifi定位。这两个方式类似,都是通过采集手机上的基站I原创 2012-11-15 19:15:41 · 3329 阅读 · 1 评论 -
android定位二(百度定位SDK)
核心类LocationClient类用来发起定位,添加取消监听LocationClientOption类用来设置定位方式,包括是否启用缓存,使用gps,时间间隔等。BDLocation类定位结果的封装,包含坐标和错误码等信息。BDLocationListener接口类获取定位结果BDNotifyListener 类作用:位置提醒接口类,用于设原创 2012-11-16 14:33:58 · 12082 阅读 · 1 评论 -
Process and Thread 进程和线程
http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html当一个应用程序组件开启,而该应用程序没有其他组件在运行,那么Android系统会为这个应用程序启动一个新的Linux进程,一个单独线程来执行这些操作。一般来说,一个应用程序中的所有组件应该是跑在同一个进程和线程(主线程,called转载 2012-02-29 02:46:28 · 1551 阅读 · 0 评论 -
Android的引用jar包
先来个基础的,在eclips里在工程名上右键->build path->contigure bud path->java build path里有个几个选项add external jars = 增加工程外部的包add jars = 增加工程内包add library = 增加一个库add class folder = 增加一个类文件夹 下面着重介绍add libra原创 2012-02-27 18:33:47 · 10141 阅读 · 0 评论 -
图片的旋转
在绘制指南针的指针的时候犯了会晕,指针的旋转在绘制的时候先进行一个角度的旋转,再进行bitmap的绘制。相当于把整个画布进行了旋转。void android.graphics.Canvas.rotate(float degrees, float px, float py)public final void rotate (float degrees, float px, flo原创 2011-10-27 00:28:18 · 915 阅读 · 0 评论 -
读取通讯录
准备做个通话录音的东西,下面是异步查询通讯录的代码 private static final String TAG = "ContractChoseActivity"; private int sdkVersion = 4; private String mColumnName = null; private ListView mListView; private My原创 2011-10-27 22:44:25 · 977 阅读 · 0 评论 -
SQLite批量插入优化方法
SQLite的数据库本质上来讲就是一个磁盘上的文件,所以一切的数据库操作其实都会转化为对文件的操作,而频繁的文件操作将会是一个很好时的过程,会极大地影响数据库存取的速度。例如:向数据库中插入100万条数据,在默认的情况下如果仅仅是执行 sqlite3_exec(db, “insert into name values ‘lxkxf', ‘24'; ”, 0, 0, &zErrMsg);转载 2011-10-29 19:32:38 · 27885 阅读 · 0 评论 -
onInterceptTouchEvent和onTouchEvent调用时序
onInterceptTouchEvent()是ViewGroup的一个方法,目的是在系统向该ViewGroup及其各个childView触发onTouchEvent()之前对相关事件进行一次拦截,Android这么设计的想法也很好理解,由于ViewGroup会包含若干childView,因此需要能够统一监控各种touch事件的机会,因此纯粹的不能包含子view的控件是没有这个方法的,如Linea转载 2011-11-30 22:02:47 · 509 阅读 · 0 评论 -
Android onTouchEvent, onClick及onLongClick的调用机制
针对屏幕上的一个View控件,Android如何区分应当触发onTouchEvent,还是onClick,亦或是onLongClick事件?在Android中,一次用户操作可以被不同的View按次序分别处理,并将完全响应了用户一次UI操作称之为消费了该事件(consume),那么Android是按什么次序将事件传递的呢?又在什么情况下判定为消费了该事件? 搞清楚这些问题对于编写出转载 2011-11-30 22:36:10 · 1225 阅读 · 0 评论 -
命令行下创建 Android 工程,用 Ant 进行编译部署
转自:http://venus585625.iteye.com/blog/1121400安装完 Android SDK 后可以在命令行下 Android.bat 命令创建一个示例项目,有 Ant 的话还可直接用 Ant 来编译部署到模拟器上运行。 环境准备: 告诉 path 要指向到 Android SDK 目录的 tools 子目录中,如 d:\android-sdk转载 2011-12-25 18:07:23 · 1176 阅读 · 0 评论 -
android的签名
Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据: 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密) 可信任的证书实体(trusted certificate entries)——只包含公钥原创 2012-02-22 20:06:10 · 2333 阅读 · 0 评论 -
android的Drawable
Android Drawable XML DocumentationThe missing manual! Each of the top-level elements are useable in Android XML files, in /res/drawable/. Some of them are allowed to be contained in others and thi转载 2012-02-23 15:10:55 · 1833 阅读 · 0 评论 -
Notification的基本使用方法
参考地址:http://daydayup1989.iteye.com/blog/841911基本的步骤: 1)得到NotificationManager: String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (Notifica转载 2012-02-24 00:34:52 · 626 阅读 · 0 评论 -
关于PendingIntent
PendingIntent对Intent做了进一步的封装,然后把PendingIntent交给别的程序,定时或者由用户手动触发。这个主要用于Notification,AppWidget,AlarmManager等首先看官方解释:An Intent is something that is used right now; a PendingIntent is something that may原创 2011-01-23 17:40:00 · 693 阅读 · 0 评论 -
关于android联网的若干问题
Android联网功能Android网络包1,java.net 提供与联网有关的类, 包括流和数据包(datagram)sockets,Internet协议和常见HTTP处理。该包是一个多功能网络资源。2,java.io 虽然没有提供显示的联网功能,但是仍然非常重要。该包中的类由其他Java包中提供的socket和连接使用。它们还拥有与本地文件(在与网络进行交互时会经常出现)的交互原创 2011-06-22 22:51:00 · 1066 阅读 · 0 评论 -
帧动画
这是个典型的眼高手低的例子,一直认为动画是个很普通的东西,但是写起来发现还是有点东西的,仔细的看一下。 Frame Animation可以在XML Resource定义(还是存放到res/anim文件夹下,亲自试验过也可以放在res/drawable),也可以使用android.graphics.drawable.AnimationDrawable中的API定义,其实也就是一种Drawable转载 2010-12-22 01:55:00 · 937 阅读 · 0 评论 -
android多线程二(消息模型)
在之前的一篇文章中有一段Handler小结。大概介绍了Handler和Looper的关系,并且实例了一个Thread中添加Looper的实例,最后给出了替代方案HandlerThread 。Android要建立一个消息系统使用了Looper,MessageQueue,Handler等概念,这些都是概念包装,本质的东西就是消息队列中消息的分发路径的和消息分发处理方式的设计。在Andr原创 2013-01-12 19:00:03 · 1046 阅读 · 0 评论 -
android多线程三(Message,MessageQueue)
Message 定义一个包含任意类型的描述数据对象,此对象可以发送给Handler。尽管Message的构造器是公开的,但是获取Message对象的最好方法是调用Message.obtain()或者Handler.obtainMessage(), 这样是从一个可回收对象池中获取Message对象。Message类是个final类,就是说不能被继承,同时Message类实现了Pa原创 2013-01-14 00:39:03 · 1523 阅读 · 0 评论 -
ListView特效2(列表拖拽)
即listView特效1,http://blog.csdn.net/pipisky2006/article/details/7393475,好久之后列表的拖拽效果(参考Android源码下packages/apps/Music中的播放列表TouchInterceptor.java源码)重写ListView中onInterceptTouchEvent(),onTouchEvent()原创 2013-01-15 00:38:31 · 1967 阅读 · 0 评论 -
自定义Dialog&DialogFragment
DialogFragment这是个展示dialog窗口的fragment。这个fragment包含了一个Dialog对象,它的展示是基于fragment的状态。控制dialog(决定要show,hide,dismiss等)应该通过dialogfragment的api而不是dialog的实现这个类需要通过override方法onCreateView(LayoutInflater, ViewG原创 2013-01-31 14:10:45 · 16368 阅读 · 2 评论 -
绘制圆角
插入一点内容Canvas的save和restoreonDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布。在onDraw方法里,我们经常会看到调用save和restore方法,它们到底是干什么用的呢?❑ save:用来保存Canvas的状态。save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。❑ restore:用来恢复Canvas原创 2011-01-24 00:20:00 · 853 阅读 · 0 评论 -
Fragments
(一)Fragments要点:a) Fragment表现为一个Activity用户界面的一部分;b) 你可以合并多个fragment在一个单独的activity中;c) 也可以在多个activity中重复使用一个Fragment;d) Fragment有自己的生命周期;e) 接收自己的输入事件;f) 在activity运行的过程中,你可以添加或移除一个Fragment;转载 2013-01-19 03:45:32 · 2979 阅读 · 0 评论 -
命令模式下的异步消息处理(Handler,Message,Looper,Thread)
不熟悉命令模式可以先读读http://blog.csdn.net/pipisky2006/article/details/6748226,下文中如果图片不能完全展示可以在新标签页打开图片。下面的是标准的命令模式的类图。接受者:Handler,执行消息处理操作。请求者:Looper,调用消息的的处理方法。命令角色:Message,消息类原创 2013-01-14 00:42:11 · 4396 阅读 · 0 评论 -
若干小问题
1,彩信附件库中读取信息乱码的转码content://mmsname = new String(cur.getString(9).getBytes("ISO8859_1"), "utf-8");2,含有checkbox的listview的item不能点击 android:layout_width="40dp" android:layout_heigh原创 2011-11-14 15:41:31 · 1026 阅读 · 0 评论 -
LayoutAnimationController
layoutanimation,顾名思义,是用来设置给viewgroup类型的animation,是子view来执行的。可以是android:layoutAnimation="@anim/popinlayout" 也可以是javacode的viewgroup.setLayoutAnimation(layoutnaimationcontroller);和Animation原创 2013-01-08 00:36:51 · 3677 阅读 · 0 评论 -
ViewTreeObserver
api的概述:A view tree observer is used to register listeners that can be notified of global changes in the view tree. Such global events include, but are not limited to, layout of the whole tree, begin原创 2013-01-08 12:38:17 · 8237 阅读 · 0 评论 -
Android多线程一(AsyncTask实现原理)
有空的可以先看看这篇,Android组件与进程,进程的优先级,组件都在主线程,线程安全等。提到android的多线程,必须提下特有的异步task类,AsyncTask。AsyncTask 的优势体现在:线程无法管理,匿名线程创建并启动后就不受程序的控制了,如果有很多个请求发送,那么就会启动非常多的线程,系统将不堪重负。代码更简洁,实现起来更方便。AsyncTas转载 2013-01-09 14:28:30 · 7531 阅读 · 0 评论 -
Handler的小结
Handler在android里负责发送和处理消息。它的主要用途有: 1)按计划在将来的某个时刻发送消息或执行某个Runnanble(使用POST方法); 2)从其他线程中发送来的消息放入消息队列中,进行任务排队,避免线程冲突(常见于更新UI线程) 默认情况下,Handler接受的是当前线程下的消息循环实例(使用Handler(Looper looper)、Handle原创 2011-10-17 23:38:02 · 821 阅读 · 0 评论 -
ActionBarSherlock
上一篇中介绍了ActionBar,http://blog.csdn.net/pipisky2006/article/details/8521834ActionBarSherlock 是Android compatibility library 的一个扩展, 不知道什么原因 Android 兼容开发包没有包含ActionBar. 所以就有了ActionBarSherlock. 其使用方式和原创 2013-01-26 01:27:44 · 3724 阅读 · 0 评论 -
Action Bar
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Androi转载 2013-01-20 13:45:58 · 5002 阅读 · 3 评论 -
内部Handler类引起内存泄露
转载于:http://yunfeng.sinaapp.com/?p=468如果您在Activity中定义了一个内部Handler类,如下代码:public class MainActivity extends Activity { private Handler mHandler = new Handler() { @Override转载 2013-01-26 01:29:39 · 2152 阅读 · 0 评论 -
AsyncTask使用须知
AsyncTask的实现原理就是封装了的线程池,具体见AsyncTask实现原理。在1.5中初始引入的时候, AsyncTask 执行( AsyncTask.execute() )起来是顺序的,当同时执行多个 AsyncTask的时候,他们会按照顺序一个一个执行。前面一个执行完才会执行后面一个。这样当同时执行多个比较耗时的任务的时候 可能不是您期望的结果,具体情况就像是execute的转载 2013-01-26 01:30:32 · 8806 阅读 · 3 评论