- 博客(194)
- 收藏
- 关注
原创 Android Touch事件
Android中跟Touch事件有关的事件有三个: public boolean dispatchTouchEvent(MotionEvent ev):传递Touch事件至target view(可以是自己)。 public boolean onInterceptTouchEvent(MotionEvent ev):在ViewGroup中定义,用于拦截Touch事件的传递。 pu...
2012-04-15 22:57:11
246
原创 Android touch事件一种解释
研究了一下android的touch事件,从doc到google,算是有了一些初步的理解。以下是经过消化的个人理解,有可能与事实不符,欢迎指正。 首先,来了解一下android的事件机制。android的基本元事件我猜应该有5种,理由是MotionEvent类里有5个事件常量,分别是 ACTION_DOWN,ACTION_MOVE,ACTION_UP,ACTION_CANCEL和ACTION...
2012-04-15 22:37:29
257
原创 ndroid的px、dip、sp的区别
一、 概述dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。 好了,入正题吧,先说说px,px就是像素,如果用px,就会用实际像素画,比个如吧,用画一条长度为240px的横线,在480宽的模拟器上看就是一半的屏宽,而在32...
2012-03-01 17:54:49
288
原创 android中Invalidate和postInvalidate的区别
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 ...
2012-02-19 16:18:34
137
原创 Android Framework内核之旅
Framework框架Framework定义了客户端组件和服务端组件功能及接口。以下阐述中,“应用程序”一般是指“.apk”程序。框架中包含三个主要部分,分别为服务端、客户端和Linux驱动。6.1.1服务端服务端主要包含两个重要类,分别是WindowManagerService(WmS...
2012-02-18 15:09:29
117
原创 Android 中Activity,Window和View之间的关系
我想大多数人,对于这3个东西的概念能区分,但是具体区别在哪却很难说出来。我这里根据我个人的理解来讲讲我个人对这3个概念的理解。当然这里设计到通用的事件窗口模型等通用GUI设计,我这里就不打算讲了,纯粹从概念上来进行区分。Activity是Android应用程序的载体,允许用户在其上创建一个用户界面,并提供用户处理事件的API,如onKeyEvent, onTouchEven...
2012-02-18 15:07:05
150
原创 Android 漂亮的 Dialog (弹出框)
在新浪微博Android客户端的开发的课程中呢要用的得自定义的Dialog,这个Dialog个人觉得还不错,所以就那处理来分享了。如果有兴趣的朋友也可以观看视频,视频中会有详细的介绍(新浪微博Android客户端视频教程区)。首先呢,还是让我们先来看效果图,正所谓有图有真相:下面我们看看是怎么来实现的:第一步:在res/layout目录下新创建一个布局文件:authorize_dialog.xml...
2012-02-13 23:35:25
2118
原创 Android 定位系统(GPS)开发基础
全球定位系统(Global Positioning System,GPS),是一个中距离圆型轨道卫星导航系统,可以为地球表面的绝大部分地区(98%)提供准确的定位、测速和高精准的时间标准。GPS广泛运用于军事、物流、地理、移动电话、数码相机、航空领域等,具有非常强大的功能。Android支持地理定位服务的API。该地理定位服务可以用来获取当前设备的地理位置,应用程序可以定时请求...
2012-02-10 14:44:48
208
原创 Android中AsyncTask的简单用法
在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验。但是在子线程中无法去操作主线程(UI 线程),在子线程中操作UI线程会出现错误。因此android提供了一个类Handler来在子线程中来更新UI线程,用发消息的机制更新UI界面,呈现给用户。这样就解决了子线程更新UI的问题。但是费时的任务操作总会...
2012-01-13 16:00:16
129
原创 ListView的分页显示
package com.anddev.ListMore.Test; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import ...
2012-01-13 11:22:01
172
原创 把TextView中的文字添加阴影效果及Style的使用
<TextView android:id="@+id/tvText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="text1" android:textSize="28sp" android:textStyle="bold&
2012-01-12 15:00:18
159
原创 GridView动态加载数据情况下,选中状态的实现
GridView使用AdapterView动态加载数据情况下,无论是在onCreate、Onstart、OnResume方法中调用getChildCount()均为0,这说明数据并没有在Activity最初启动后立即加载为GridView的子View,那如果要把GridView实现为Tab风格的菜单,是必须要调用它的状态选中的,如果在Activity中调用的话就会抛nullpointe...
2012-01-12 14:57:31
155
原创 Android中的透明属性的设置
ui设计时,需要指定某个元素的drawable时,有时候需要告诉Android我希望设置它为透明,偶然在源码中发现,就是以下这段代码:android:background="@android:color/transparent" ...
2012-01-12 14:50:10
513
原创 简单实现ImageView的加边框颜色的方法
对于一个ImageView,如果我们要加上边框,比如宽为3dp的灰色框,我们怎么做呢?有种方法,是自己定义一个MyImageView类,继承自ImageView,在其onDraw方法中画canvas。还有设置一个带有边框的背景图片的方法。 这里给出一种简单方法,既不需要创建衍生的类,也不需要准备图片。采用xml定义的方式实现。背景定义xml: bg_border1.xml...
2012-01-12 14:48:48
570
原创 Android应用的自动升级、更新模块的实现
我们看到很多Android应用都具有自动更新功能,用户一键就可以完成软件的升级更新。得益于Android系统的软件包管理和安装机制,这一功能实现起来相当简单,下面我们就来实践一下。首先给出界面效果:1. 准备知识在AndroidManifest.xml里定义了每个Android apk的版本标识:<manifest xmlns:android="http://schema...
2012-01-12 14:37:36
147
原创 Android版本检测与更新
由于大家提出的注释的问题,我做了一些修改,进行了一定的注释说明,更新一下,希望大家多多支持,谢谢!package com.autoupdate;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.URL;import java.net...
2011-12-26 14:31:04
182
原创 BroadcastReceiver的使用
BroadCastReceiver 简介BroadCastReceiver 源码位于: framework/base/core/java/android.content.BroadcastReceiver.java 广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用 Context.sendBroadca...
2011-12-07 22:34:42
166
原创 android ,点击title的ImageView弹出PopupWindow【安卓进化七】
一、曾经做过一个项目,用的大概就是这种布局,title布局,title右边是ImageView,点击每一个图标,弹出PopupWin,点击其他按钮PopupWin就在原地消失。这个效果还很不错的,我挺喜欢的,所以抽空把它写了出来。现在将代码给大家提供一下,希望能给大家一些提示。先看截图: 点击MP3这个图标点击PopupWin苹果MP3这列弹出Toast:说明:每一个popupwi...
2011-12-03 10:33:13
339
原创 Android之PopupWindow弹出对话框
Android的对话框常用的有两种:PopupWindow和AlertDialog。PopupWindow顾名思义为弹出菜单,不同于AlertDialog对话框,PopupWindow弹出的位置可以很多变化,按照有无偏移分,可以分为无偏移和偏移两种;按照参照类型不同又可以分为两种:相对某个控件(Anchor锚)的位置和父容器内部的相对位置。具体如下:函数简...
2011-12-03 09:40:28
156
原创 CursorTreeAdapter 详解
CursorTreeAdapter 通过该适配类可以用一连续的游标 (Coursor)对象访问数据库,并将查询出来的数据展示到可伸缩的列表视图 (ExpandableListView)部件上。顶层游标 (Cursor)对象 (在构造器中指定 )显示全部组,后面的游标 (Cursor)对象从getChildrenCursor(Cursor) 获取并展示子元素组。其中游标携带的结果集中必须有个名为“ ...
2011-12-02 17:44:50
344
原创 Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)
我们在开发程序是经常会需要软件全屏显示、自定义标题(使用按钮等控件)和其他的需求,今天这一讲就是如何控制Android应用程序的窗体显示. 首先介绍一个重要方法那就是requestWindowFeature(featrueId),它的功能是启用窗体的扩展特性。参数是Window类中定义的常量。一、枚举常量1.DEFAULT_FEATURES:系统默认状态,一般不需要指定2.F...
2011-12-02 09:43:52
110
原创 Android GestureDetector 手势基础
1. 当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onTouch(View v, MotionEvent event)方法,我们可以处理一些touch事件,但是这个方法太过简单,如果需要处理一些复杂的手势,用这个接口就会很麻烦(因为我们要自己根据用户...
2011-12-01 16:34:23
107
原创 Android GestureDetector手势识别类
为了加强鼠标响应事件,Android提供了GestureDetector手势识别类。通过GestureDetector.OnGestureListener来获取当前被触发的操作手势(Single Tap Up、Show Press、Long Press、Scroll、Down、Fling),具体包括以下几种:boolean onDoubleTap(MotionEvent e) 解释:...
2011-12-01 14:26:08
122
原创 android之Tabhost深入讲解二
之前一直认为TabHost不够灵活而使用ActivityGroup。看到了一个利用反射来控制TabHost的例子先通过tabHost.newTabSpec(CagConstant.TAB_TAG_CHANGE_INFO);tabHost.newTabSpec(CagConstant.TAB_TAG_ROUTE_INFO);tabHost.newTabSpec(Cag...
2011-11-29 09:18:09
128
原创 android之Tabhost深入讲解一
大家都知道Tabhost中Tabwidget的布局是图标在上,文字在下的垂直布局。比如通讯录的布局。这种布局在手机上的竖屏上用得最多,但在横屏则显得水平分布得不够紧凑。如何实现自定义的布局呢? 1:首先理解Tabhost的布局:<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://...
2011-11-28 21:46:37
208
原创 Android中的view
View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。每一个View都有一个用于绘图的画布,这个画布可以进行任意扩展。在游戏开发中叶可以自定义视图(View),这个画布的功能更能满足我们在游戏开发中的需要。在Android中,任何一个View类都只需重写onDraw 方法来实现界面显示,自定义的视图可以是复杂的3D实现,也可以是非常简单的文本形式等。 游戏中最重要的就...
2011-11-21 15:02:00
168
原创 Android自定义View之一:初探实例 .
Android自定义View实现很简单继承View,重写构造函数、onDraw,(onMeasure)等函数。 如果自定义的View需要有自定义的属性,需要在values下建立attrs.xml。在其中定义你的属性。 在使用到自定义View的xml布局文件中需要加入xmlns:前缀="http://schemas.android.com/apk/res/你的自定义View所在的...
2011-11-21 14:53:05
118
原创 NDK进阶实例
网上也有一些对NDK的介绍,不过都是很简单的把sample里面的例子讲解一下,并不深入,我这里把我的所得分享一下。我下载的是Android Native Developer Kit (NDK) R4版本,当前的最新版。 下载地址如下: http://dl.google.com/android/ndk/android-ndk-r4b-linux-x86.zip 我下面讲...
2011-11-20 09:54:05
128
原创 Android 开发手记四(C可执行程序编译实例 .)
继续 NDK 的开发。上次我们的实例中,对 C 应用程序的编译链接,自己编写的 makefile 是件比较困难的事情。虽然最后成功了,不过中间经历了不少坎坷。我们现在研究下如何用 NDK 提供的 build 工具,实现我们的目标。 还是以 Hello Android 工程为例。 建立好工程 hello-a ,在 jni 目录下创建文件 hell...
2011-11-20 09:45:25
191
原创 Android 开发手记三
2.3 Study Hard 有了上面的基础,我们就可以用 NDK 来进行项目开发了。 我们经常会遇到这样的问题,就是将一些现有的,成熟的 C 库移植到 Android 平台上。通过上面我们的介绍,我们已经知道,我们需要用 JNI 来对现有的 C 库包装一下,然后提供 Java 接口,供上层调用。 首先的问题,就是 C 库的编译和测试。其实 And...
2011-11-20 09:41:10
102
原创 Android 开发手记二
工程建立好后,编辑 src/com/jpf/myjni/MyJNI.java 文件,内容如下:package com.jpf.myjni; import android.app.Activity; import android.widget.TextView; import android.os.Bundle; public class MyJNI ext...
2011-11-20 09:35:36
129
原创 Android 开发手记一
在 Android 上,应用程序的开发,大部分基于 Java 语言来实现。要使用 c 或是 c++ 的程序或库,就需要使用 NDK 来实现。 NDK 是 Native Development Kit 的简称。它是一个工具集,集成了 Android 的交叉编译环境,并提供了一套比较方便的 Makefile ,可以帮助开发者快速开发 C 或是 C++ 的动态库,并自动的将 so 和 java 程序...
2011-11-20 09:29:02
124
原创 Android NDK 的学习之旅 - 数据传输
1、主要流程 1、 String 字符串传输a) 上层定义一个native的方法,需要一个String 参数 ,返回一个String b) JNI对应上层的方法,打印出上层传输下来的String数据,并返回处理String数据 c) 上层 收到 native 方法 返回的 值,在UI中显示出来 2、 自定义对象的传输a) 自定义一个对象Person b) 上层定...
2011-11-19 16:53:58
142
原创 JNI编程
JNI介绍Java 本机接口(Java Native Interface (JNI))是一个本机编程接口,它是 Java 软件开发工具箱(Java SoftwareDevelopment Kit (SDK))的一部分。JNI允许 Java 代码使用以其它语言(譬如 C 和 C++)编写的代码和代码库。Invocation API(JNI 的一部分)可以用来将 Java 虚拟机(JVM)嵌入...
2011-11-19 16:42:24
105
原创 JNIEnv的哲学
Java通过JNI 机制调用c/c++写的native程序。c/c++开发的native程序需要遵循一定的JNI规范,下面的例子就是一个JNI函数声明:JNIEXPORT jint JNICALL Java_jnitest_MyTest_test (JNIEnv * env, jobject obj, jint arg0); JVM负责从Java Stack转入C/C++ N...
2011-11-19 16:38:33
125
原创 JNIEnv*的常用函数详解 .
#include "TestNative.h" /* * Class: TestNative * Method: add * Signature: (II)I */ JNIEXPORT jint JNICALL Java_TestNative_add(JNIEnv *en, jobject obj, jint x, jint y) {...
2011-11-19 16:29:08
325
原创 Android应用的自动升级、更新模块的实现 .
http://www.eoeandroid.com/thread-79081-1-1.htmlhttp://www.cnblogs.com/qianxudetianxia/archive/2011/04/12/2010919.htmlhttp://www.eoeandroid.com/thread-50433-1-1.htmlhttp://blog.csdn.net/xjanker2/...
2011-11-16 14:01:59
82
原创 一个APK反编译利器Apktool
一个APK反编译利器Apktool APK 本地化 [http://www.andmoto.com/viewthread.php?tid=3873 ]说起APK的汉化,目前大部分教程都是让用Hex Workshop或者Android ResEdit来做。但是实际操作后,就会发现:1、Hex Workshop操作繁琐,经常出现搜不到想要修改的字符的情况;2、Android...
2011-11-16 13:54:02
122
原创 自定义Android标题栏TitleBar布局
很多网友发现自己Android程序的标题栏TitleBar区域很单调,如果想个性化一些可以通过下面的方法来为自己软件的标题定制一个layout布局文件,比如浏览器的标题栏,它包含了网站的Favicon,自定义的进度条,和不确定的进度指示等等,实现的方法自己控制吧。下面代码在onCreate中使用,同时顺序不要改变,否则将无法生效:requestWindowFeature(Window.FEAT...
2011-11-14 14:13:51
126
原创 Android GPS获取地理位置 .
import android.app.Activity;import android.content.Context;import android.location.Criteria;import android.location.Location;import android.location.LocationListener;import android.location....
2011-11-14 14:11:00
95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人