
android
文章平均质量分 81
Only鱼籽酱
独立开发者,全栈工程师,写作爱好者,产品设计师。技术研究领域包括Android、iOS、React、NodeJs、Flutter。期望生活、娱乐、产品、技术完美结合。
展开
-
Android双缓冲技术
Android中双缓冲技术是游戏开发中的一个重要技术。主要原理:当一个动画争先显示时,程序又在改变它,前画面还没有显示完,程序又请求重新绘制,这样屏幕就会不停闪烁。为了避免闪烁,可以使用双缓冲技术,将要处理的图片都在内存中处理好之后,再将其显示到屏幕上。这样显示出来的总是完整的图像,不会出现闪烁现象。从以前介绍过的内容中我们可以看出,Android中的SurfaceView类其实就是一个双缓冲转载 2012-08-27 20:33:26 · 2000 阅读 · 0 评论 -
如何在eclipse中查看Android各版本源代码
1.android下载 http://rgruet.free.fr/public2.android安装 在各个版本的sdk下面创建新文件夹sources,如下 android_sdk_installation_folder\platforms\android-1.5\sources转载 2012-09-04 19:20:42 · 1287 阅读 · 0 评论 -
selector和自定义显示状态
selector原理简述过程:1.drawable = new StateListDrawable();//android默认使用selector产生的Drawable对象类型是StateListDrawable2.drawable.inflate(r, parser, attrs);//解析xml文件把各种状态储存进入drawable对象3.setPressed(boolean pr原创 2012-09-03 02:50:09 · 5506 阅读 · 0 评论 -
Canvas
Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0。今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章。大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图形处理相关的: Canvas、ColorFilter、Point(点)和转载 2012-08-27 20:18:41 · 615 阅读 · 0 评论 -
android 开发环境搭建
1.JDK(Android SDK 需要 JDK5 或更高)JAVA_HOME (指向JDK安装文件夹) CLASSPATH (;%JAVA_HOME%\lib\tools.jar)PATH ( ;%JAVA_HOME%\bin)http://www.oracle.com/technetwork/java/javase/downloads/index.html2.Ecli原创 2012-08-27 18:15:45 · 628 阅读 · 0 评论 -
Eclipse手动生成R.java方法
1.选择菜单Project 勾选上 Bulid Automatically(自动构建部署) 。 2.选择菜单Project 点Clean后会重新构建项目,R.java文件在这个时候会重新更新生成一边,如果工程有错,就不会自动生成。 3.选择工程右键 Android Tools >> Fix Project Properties 这个操作有时候可以修正一些错误 。原创 2012-08-27 18:40:10 · 9322 阅读 · 0 评论 -
Android原理揭秘系列之View、ViewGroup
作过Android 应用开发的朋友都知道,Android的UI界面都是由View和ViewGroup及其派生类组合而成的。其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的。AndroidUI界面的一般结构可参见下面的示意图:可见,作为容器的ViewGroup可以包含作为叶子节点的View,也可以包含作为更低层次的子ViewGrou转载 2012-08-27 20:46:56 · 545 阅读 · 0 评论 -
Android中Notification的framework层讲解
android的notificaiton的声音sound也是申请的AudioManager机制来播放声音的。最近让我找恢复出厂设置后,手机刚启动,接受短信没有声音,如果恢复出厂设置后,等一会儿,过个2分钟再接受短信,就有铃声了。下面我把我分析代码的方法写下来,给自己和读者一些启发: 日历也是用的是Notification,但是恢复出厂设置后,立马设置日历后,日历可以出声音,我看日历的转载 2012-08-27 20:38:46 · 3220 阅读 · 0 评论 -
android之解决屏幕大小与密度不同导致的差异
解决屏幕大小相同分辨率不同:dp(与密度无关的像素):逻辑长度单位,在 160 dpi 屏幕上,1dp=1px=1/160英寸。随着密度变化,对应的像素数量也变化,但并没有直接的变化比例。例: a机器:屏幕密度:160像素/英寸 此时1dp=1px=1/160英寸。b机器:屏幕密度:240像素/英寸 此时1dp= 1px * (240/160) = 1.5px 。dp能原创 2012-09-26 19:50:18 · 1780 阅读 · 0 评论 -
AsyncTask基本用法
/**AsyncTask 可以判断的三种状态AsyncTask.Status FINISHED Indicates that onPostExecute(Result) has finished.AsyncTask.Status PENDING Indicates that the task has not been executed yet.AsyncTask.Status RUNNING原创 2012-09-25 14:16:41 · 658 阅读 · 0 评论 -
TextWatcher基本用法
TextWatcher fieldValidatorTextWatcher = new TextWatcher() { @Override public void afterTextChanged(Editable s) {//表示最终内容 Log.d("afterTextChanged", s.toString());原创 2012-09-20 00:39:17 · 31253 阅读 · 2 评论 -
Drawable 基本用法
1.相关对象a.Rect类:主要用于储存长方形四条边的长度Rect rect = new Rect();Rect rect1 = new Rect(0, 0, 50, 50);//相对于绘制点,指定左上右下四个方向的长度坐标Rect rect2 = new Rect(rect); rect.centerX();rect.centerY();//返回X和Y的中原创 2012-09-02 17:24:02 · 2784 阅读 · 0 评论 -
MapView 和 MapActivity 基本用法
MapView 和 MapActivity 负责显示和操作地图的主要工作1.基本对象a.GeoPoint类:表示一对经度和纬度值GeoPoint geoPoint = new GeoPoint((int)(1*1E6),(int)(-1*1E6));//纬度经度geoPoint.getLongitudeE6();//经度geoPoint.getLatitudeE6();//纬度原创 2012-08-31 14:37:29 · 6844 阅读 · 0 评论 -
TabHost基本用法
本文结合源代码和实例来说明TabHost的用法。 使用TabHost 可以在一个屏幕间进行不同版面的切换,例如android自带的拨号应用,截图: 查看tabhost的源代码,主要实例变量有:private TabWidget mTabWidget; private FrameLayout mTabContent; privat转载 2012-09-29 21:40:10 · 905 阅读 · 0 评论 -
Adapter基本用法
Adapter的作用。Adapter是AdapterView视图与数据之间的桥梁,Adapter提供对数据的访问,也负责为每一项数据产生一个对应的View。其作用如下图所示:Adapter的继承结构各个类的作用 Adapter转载 2012-09-29 21:03:10 · 1605 阅读 · 0 评论 -
Handler搭配Thread基本用法
private TaskHandler mTaskHandler;private HandlerThread mTaskThread;mTaskThread = new HandlerThread("AsyncThread");mTaskThread.start();mTaskHandler = new TaskHandler(mTaskThread.getLooper());原创 2012-09-27 14:20:40 · 799 阅读 · 0 评论 -
SharedPreferences基本用法
/*preference保存活动状态*/ SharedPreferences myPrefs = getPreferences(MODE_PRIVATE); boolean hasPreferences = myPrefs.getBoolean("initialized", false);//检测是否有名为initialized的首选项 if(hasPreferences){ /原创 2012-09-19 22:20:14 · 1167 阅读 · 0 评论 -
PreferenceActivity基本用法
/*PreferenceActivity继承ListActivity负责用list表示各个preferences项, 通过Preference类配置view和点击后的行为,负责首选项的界面与持久化功能*/public class WeiboPreferenceActivity extends PreferenceActivity{ @Override protected void原创 2012-09-19 21:33:09 · 659 阅读 · 0 评论 -
LocationManager基本用法
1.基本使用a.基本方法LocationManager locMgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);//获得LocationManager引用locMgr.getLastKnownLocation(LocationManager.GPS_PROVIDER);//提供设备最后已知位置,原创 2012-09-06 01:07:14 · 17761 阅读 · 0 评论 -
window.requestWindowFeature()基本用法
requestWindowFeature(Window.FEATURE_LEFT_ICON); setContentView(R.layout.dialog_activity); getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.drawable.ic_dialog_alert);转载 2012-09-27 15:19:34 · 636 阅读 · 0 评论 -
Activity中的setDefaultKeyMode()基本用法
如果在Activity中的onCreate()方法中使用setDefaultKeyMode()可以做到在当前activity中打开拨号器、执行快捷键、启动本地搜索、启动全局搜索。 这个启动啥,要看setDefaultKeyMode中传了啥参数,不同的参数见下:/** * Use with {@link #setDefaultKeyMode} to turn o转载 2012-09-27 15:13:51 · 1640 阅读 · 0 评论 -
Thread,Looper,Handler,Message,MessageQueue之间的关系
多线程与异步Main Thread & UI Thread当程序启动的时候Android会自动创建一个进程和一个线程,这个线程负责界面更新,收集系统事件和用户的操作事件等并分配给对应的组件,所以这个线程非常重要 被称为主线程,因为所的和UI有关的操作都是在这个线程当中进行的所以也被称作UI线程。所以说默认情况下主线程和UI线程指的是同一个线程。For instance, when th转载 2012-10-08 21:06:43 · 807 阅读 · 0 评论 -
WindowManager基本使用
WindowManager是Android中一个重要的服务 (Service )。WindowManager Service 是全局的,是唯一的。它将用户的操作,翻译成为指令,发送给呈现在界面上的各个Window。Activity会将顶级的控件注册到 Window Manager 中,当用户真是触碰屏幕或键盘的时候,Window Manager就会通知到,而当控件有一些请求产生,也会经由Vie转载 2012-10-08 21:49:27 · 1887 阅读 · 0 评论 -
WindowManager.LayoutParams详解
public static classWindowManager.LayoutParamsextends ViewGroup.LayoutParamsimplements Parcelablejava.lang.Object ?android.view.ViewGroup.LayoutParams ?转载 2012-10-08 21:23:48 · 41084 阅读 · 2 评论 -
Canvas基本使用
Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0。今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章。大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图形处理相关的: Canvas、ColorFilter、Point(点转载 2012-10-10 21:49:59 · 692 阅读 · 0 评论 -
Window,View和WindowManager之间关系
Android中以Window为考察点的话, 涉及的主要接口和类有View, ViewGroup, ViewRoot, Window, PhoneWindow, WindowManagerPolice, PhoneWindowManager, WindowManager, 和WindowManagerImpl.Window中的View----------------------转载 2012-10-10 22:00:36 · 655 阅读 · 0 评论 -
应用HttpClient来对付各种顽固的WEB服务器
一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中“偷”一些数据;利用某些站点提供转载 2012-10-10 22:15:43 · 721 阅读 · 0 评论 -
application声明和使用权限
Android定义了一种权限方案来保护设备上的资源和功能。例如,在默认情况下,应用程序无法访问联系人列表、拨打电话等。下面就以拨打电话为例介绍一下系统对权限的要求。一般在我们的应用中,如果要用到拨打电话的功能,我们会这样编码:[java] view plaincopyUri uri = Uri.parse("tel:12345678");转载 2012-10-11 16:07:33 · 4256 阅读 · 0 评论 -
BroadcastReceiver基本使用
创建一个简单的BroadcastReceiver:public static final String INTENT_ACTION_LOGGED_OUT = "com.intent.action.LOGGED_OUT";public static final String INTENT_ACTION_LOGGED_IN = "com.intent.action.LOGGED_IN原创 2012-09-27 13:20:05 · 819 阅读 · 0 评论 -
Android2.3之前中的Surface系统
一 目的本节的目的就是为了讲清楚Android中的Surface系统,大家耳熟能详的SurfaceFlinger到底是个什么东西,它的工作流程又是怎样的。当然,鉴于SurfaceFlinger的复杂性,我们依然将采用情景分析的办法,找到合适的切入点。一个Activity是怎么在屏幕上显示出来的呢?我将首先把这个说清楚。接着我们把其中的关键调用抽象在Native层,以这些函数转载 2012-10-11 16:18:27 · 668 阅读 · 0 评论 -
Task和Activity相关属性解释
android:allowTaskReparenting 用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。 如果这个特性没有被设定,设定到元素上的allowTaskReparenting特性的值会应用到Activity上。默认值为转载 2012-10-11 16:30:44 · 664 阅读 · 0 评论 -
ScrollView基本使用
ScrollView原理 视图的滚动过程,其实是在不断修改原点坐标。当手指触摸后,ScrollView会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件,那么ScrollView发送tracking events到被点击的subView;若是在计时器到点后发生了移动事件,那么ScrollView取消tracking自己促发滚动。其子类可以重载touch转载 2012-10-11 16:04:36 · 1906 阅读 · 0 评论 -
.9.png的制作方式
.“点九”的制作方法方法1:使用 “draw9patch”工具绘制,流程如下;1. 安装工具首先你需要给自己的电脑安装上java于系统的默认目录下。没有安装java的同学可以在百度搜索:jdk-6u20-windows-i586,安装包大小80M左右。然后使用andriod模拟器—android-sdk-windows,打开SDK/tools目录下的“draw9patch.bat转载 2012-10-10 21:53:58 · 989 阅读 · 0 评论 -
onInterceptTouchEvent和onTouchEvent调用时序
onInterceptTouchEvent()是ViewGroup的一个方法,目的是在系统向该ViewGroup及其各个childView触发onTouchEvent()之前对相关事件进行一次拦截,Android这么设计的想法也很好理解,由于ViewGroup会包含若干childView,因此需要能够统一监控各种touch事件的机会,因此纯粹的不能包含子view的控件是没有这个方法的,如Linea转载 2012-10-10 22:08:54 · 431 阅读 · 0 评论 -
HttpClient 教程
前言超文本传输协议(HTTP)也许是当今互联网上使用的最重要的协议了。Web服务,有网络功能的设备和网络计算的发展,都持续扩展了HTTP协议的角色,超越了用户使用的Web浏览器范畴,同时,也增加了需要HTTP协议支持的应用程序的数量。尽管java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的功能。HttpClient就是寻求弥补这项空白转载 2012-09-20 19:26:20 · 2801 阅读 · 0 评论 -
SurfaceFlinger 这个核心服务层的机制
介绍一下SurfaceFlinger 这个核心服务层的机制。 从代码中我们可以看出SurfaceFlinger 是一个thread,运行在system_server进程中,并且其threadLoop()方法的返回值为true,因此它是一个循环的loop。这样保证了SurfaceFlinger业务的循环周期性。 首先,先来个综述,下图是我总结的一个SurfaceFlinger结构转载 2012-10-11 16:19:30 · 814 阅读 · 0 评论 -
SurfaceView基本使用
SurfaceView原理Here are some definitions:A Surface is an object holding pixels that are being composited to the screen. Every window you see on the screen (a dialog, your full-screen activit转载 2012-10-11 16:20:48 · 863 阅读 · 0 评论 -
android应用程序的安装位置
Android应用程序的默认安装位置以及是否可移动取决于开发者在其AndroidManifest.xml中的设置 xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:installLocation="auto"转载 2012-10-11 16:27:54 · 722 阅读 · 0 评论 -
风格和主题(style,themes)
当你设计你的程序的时候,你可以用风格和主题来统一格式化各种屏幕和UI元素。 * 风格(style)是一个包含一种或者多种格式化属性值的集合,你可以将其用为一个单位用在布局XML单个元素当中。比如,你可以定义一种风格来定义文本的字号大小和颜色,然后将其用在View元素的一个特定的实例。 * 主题(themes)是一个包含一种或者多种格式化属性值的集合,你可以将其为一个单位用在应用转载 2012-10-11 16:32:15 · 476 阅读 · 0 评论 -
Android开发者指南的 Framework Topics/Data Storage/Data Backup章节
前言 本章内容为Android开发者指南的 Framework Topics/Data Storage/Data Backup章节,译为"数据备份",版本为Android 4.0 r1,翻译来自:"呆呆大虾",欢迎访问他的微博:"http://weibo.com/popapa",再次感谢"呆呆大虾" !期待你一起参与翻译Android的相关资料,联系我over140@gmail.com。翻译 2012-10-11 16:36:19 · 889 阅读 · 0 评论