摘要:
http://blog.csdn.net/sharetop/article/details/6313654其实要实现这个效果在Android中并非难事,因为官方的Launcher已经有现成的源代码放在那儿了,就是那个Workspace.java。大家可以去http://android.git.kernel.org/下载。而我们要做的事情就是分析它并精简它(毕竟我们只是打算左右滑动罢了,并不需要能创建快捷方式文件夹之类的东西,更不需要在上面拖放图标)。view plaincopy to clipboardpublicclassWorkspaceextendsViewGroupimplements 阅读全文
posted @ 2012-12-24 17:52
GreyWolf
阅读(313)
评论(0)
推荐(0)
摘要:
很多Android开发者已经度过了初级、中级,如何成为一个Android高手呢? Android123就各个级别的程序员应该掌握哪些内容作为下面分类。 一、初级 1. 拥有娴熟的Java基础,理解设计模式,比如OOP语言的工厂模式要懂得。 2. 掌握Android UI控件、Android Java层API相关使用。 迈向中级,最好再次更新下Java技术,掌握Java concurrent库、nio库,精通xml、json解析,做过socket c/s端的程序。 二、中级 1. 熟练掌握NDK JNI方式的开发,对Android framework十分了解。 2. 移植一些开源项目,比如FFm 阅读全文
posted @ 2012-12-24 17:47
GreyWolf
阅读(235)
评论(0)
推荐(0)
摘要:
在Workspace.Java类实现,相关方法有:1) computeScroll():重写了父类的computeScroll();主要功能是计算拖动的位移量、更新背景、设置要显示的屏幕(setCurrentScreen(mCurrentScreen);)。2) dispatchDraw():重写了父类的dispatchDraw();主要功能是判断抽屉是否打开、绘制指定的屏幕,可以绘制当前一屏,也可以绘制当前屏幕和下一屏幕,也可以绘制所有的屏幕,这儿的绘制指显示屏幕上的child(例如:app、folder、Wiget)。和computeScroll()中的setCurrentScreen(m 阅读全文
posted @ 2012-12-24 17:43
GreyWolf
阅读(202)
评论(0)
推荐(0)
摘要:
http://quanminchaoren.iteye.com/blog/9161761) 桌面安装之后有5个默认的图标:search、contacts、browser、phone、message。它们是系统自带的,那它们是在哪儿存储的?什么时候加载的?2) 在res/xml目录下的default_workspace.xml文件中定义了它们。里面还定义了其他一些常用应用。定义格式如下: packageName="com.android.contacts"指定该应用的包名。 launcher:className="com.android.contacts.Dia 阅读全文
posted @ 2012-12-24 17:42
GreyWolf
阅读(192)
评论(0)
推荐(0)
摘要:
// to create live folder on "home" screenJava代码if(LiveFolders.ACTION_CREATE_LIVE_FOLDER.equalsIgnoreCase(getIntent().getAction())){ tent().getAction()canbenullIntentintent=newIntent(); UriLIVE_FOLDER_URI=Uri.parse("content://contacts/live_folders/people"); intent.setData(LIVE_FOL 阅读全文
posted @ 2012-12-24 17:21
GreyWolf
阅读(365)
评论(0)
推荐(0)
摘要:
今天开始launcher2分析系列,Launcher2的代码路径为:$ANDROID_SRC/packages/apps/Launcher2项目构成:AndroidManifest.xml 项目Launcher2的描述文件CleanSpec.mk android项目授权文件?NOTICE apache授权协议Android.mk Launcher2编译的makefileMODULE_LICENSE_APACHE2 空文件proguard.flags -keep clashhres目录 描述文件以及icon资源的位... 阅读全文
posted @ 2012-12-24 17:20
GreyWolf
阅读(314)
评论(0)
推荐(0)
摘要:
使用用ADW的Launcher的人应该有点印象里面的功能,就是拖拽应用或者Widget图标到删除图标上,停留1秒以上,则会显示"Drop to uninstall"的提示,放开则打开卸载该程序的界面,现在就是要分析模仿这个功能。主要用到有两方面的东西,卸载和停留提示。卸载主要使用的是:Java代码IntentuninstallIntent=newIntent(Intent.ACTION_DELETE, Uri.parse("package:"+mUninstallPkg)); DeleteZone.this.getContext().startActiv 阅读全文
posted @ 2012-12-24 17:17
GreyWolf
阅读(723)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/hpoi/article/details/4629717android.app.Activity对于一个Android应用来说,android.app.Activity类实例是一个最基本的功能单元。一个Activity实例可以做很多的事情,但是它本身无法显示在屏幕上,而是借助于Viewgroup和View,这两个才是Android平台上最基本的两个用户界面表达单元。android.view.ViewGroupViewGroup是一个特殊的View类,它继承于android.view.View。它的功能就是装载和管理下一层的View对象和ViewGrou 阅读全文
posted @ 2012-12-24 17:10
GreyWolf
阅读(138)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/hpoi/article/details/4632378很多时候,利用触摸屏的Fling、Scroll等Gesture(手势)操作来操作会使得应用程序的用户体验大大提升,比如用Scroll手势在浏览器中滚屏,用Fling在阅读器中翻页等。在Android系统中,手势的识别是通过 GestureDetector.OnGestureListener接口来实现的,不过William翻遍了Android的官方文档也没有找到一个相关的例子,API Demo中的TouchPaint也仅仅是提到了onTouch事件的处理,没有涉及到手势。Android Develo 阅读全文
posted @ 2012-12-24 17:09
GreyWolf
阅读(431)
评论(0)
推荐(0)
摘要:
Inflater英文意思是膨胀,在Android中应该是扩展的意思吧。LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button,TextView等)。(0)她可以有很多地方可以使用,如BaseAdapter的getView中,自定义Dialog中取得view中的组件widget等等。它的用法有2种:复制到剪贴板Java代码viewplaincopytoclipboardprint?Layou 阅读全文
posted @ 2012-12-24 17:06
GreyWolf
阅读(277)
评论(0)
推荐(0)
摘要:
// 相对于给定ID控件android:layout_above 将该控件的底部置于给定ID的控件之上;android:layout_below 将该控件的底部置于给定ID的控件之下;android:layout_toLeftOf将该控件的右边缘与给定ID的控件左边缘对齐;android:layout_toRightOf将该控件的左边缘与给定ID的控件右边缘对齐;android:layout_alignBaseline将该控件的baseline与给定ID的baseline对齐;android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;android:layou 阅读全文
posted @ 2012-12-24 16:56
GreyWolf
阅读(237)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/droidpioneer/article/details/6758057操作过Android手机的朋友应该对在待机界面拖动图标的交互效果都有比较深刻的印象,比如说,当把图标拖动起来,图标会悬浮并随着拖动变换位置,当拖动释放后,图标会自动的寻找附近合适的空白网格位置。Android在实现这个效果的过程中采用了很多编程技巧,本文着重论述的VacantCell缓存就很具有代表性。VacantCell缓存主要是对同一种类型对象的缓存机制,这种机制的目的是复用已经分配过但已过期的对象,从而避免频繁的new新的对象。我们知道对象分配是一件比较耗费系统资源的事情,在 阅读全文
posted @ 2012-12-24 16:55
GreyWolf
阅读(209)
评论(0)
推荐(0)
摘要:
2.draglayer.java:launcher layout的rootvie。draglayer现实上也是1个抽象的界面,用来措置惩罚拖动和对于事务举行开端措置惩罚然后按环境分发下去,脚色是1个controller。它起首用onintercepttouchevent(motionevent)来中途阻挡所有的touch事务,要是是长按item拖动的话不把事务传下去,直接交由ontouchevent()措置惩罚,如许就能够使成为事实item的移动了,要是否拖动item的话就把事务传到方针vie,交患上法针vie的事务措置惩罚函数做响应措置惩罚。如过有要对于事务的特殊需求的话可以修改oninte 阅读全文
posted @ 2012-12-24 16:54
GreyWolf
阅读(238)
评论(0)
推荐(0)
摘要:
instanceof是Java的一个二元操作符,和==, >, <是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:String s = "I AM an Object! ";boolean isObject = s instanceof Object;我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为True 阅读全文
posted @ 2012-12-24 16:52
GreyWolf
阅读(137)
评论(0)
推荐(0)
摘要:
1. 创建一个布局文件,布局如下,只有一个TextView<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_pa 阅读全文
posted @ 2012-12-24 16:51
GreyWolf
阅读(191)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/stonecao/article/details/6561631Luancher有一个相对比较复杂的功能就是拖放功能,要深入了解launcher,深入理解拖放功能是有必要的,这篇blog,我将对launcher的拖放功能做深入的了解1.首先直观感受什么时候开始拖放?我们长按桌面一个应用图标或者控件的时候拖放就开始了,包括在all app view中长按应用图标,下面就是我截取的拖放开始的代码调用堆栈at com.android.launcher2.DragController.startDrag(DragController.java:170)at c 阅读全文
posted @ 2012-12-24 16:50
GreyWolf
阅读(332)
评论(0)
推荐(0)
摘要:
Android系统自带了长按事件,setOnLongClickListener即可监听。但是有时候,你不希望用系统的长按事件,比如当希望长按的时间更长一点的时候。这时候就需要自己来定义这个长按事件了。 下面是去年我写代码的时候,自定义长按事件的方式:package chroya.fun;import android.content.Context;import android.view.MotionEvent;import android.view.View;import android.view.ViewConfiguration;public class LongPressView1 ex 阅读全文
posted @ 2012-12-24 16:49
GreyWolf
阅读(463)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/hu2839fdjsfdsan/article/details/65700361.LauncherApplication的作用意义分析概括:LauncherApplication属于自定义的Application类,并在AndroidManifest.xml里指定了自定义Application类,如下: <application android:name="com.android.launcher2.LauncherApplication" android:process="@string/process" 阅读全文
posted @ 2012-12-24 16:48
GreyWolf
阅读(325)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/stonecao/article/details/6536083一LauncherApplication->onCreate --1.//设置最小堆内存4M --2.//建立应用图标缓存器 --3.//建立LauncherModel --4.//注册Intent.ACTION_PACKAGE_ADDED,Intent.ACTION_PACKAGE_REMOVED,Intent.ACTION_PACKAGE_CHANGED事件监听器 LauncherModel作为广播接收器对上面3中事件进行监听 --5.//添加对桌面favorites conte 阅读全文
posted @ 2012-12-24 16:47
GreyWolf
阅读(271)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/lixuyuan/article/details/6688859一、Launcher功能介绍 Launcher简称HomeScreen,是android手机加载完毕后第一个启动的应用程序,它负责除应用本身操作外的所有操作,包括有几个桌面、点击应用程序图标启动应用程序、长时间按桌面出现上下文菜单、长按桌面图标出现垃圾箱、长按桌面应用程序后可以移动位置和设置壁纸等,虽然它负责的操作看是很多,但它和普通的应用程序具有一样的权限。二、Launcer 中一些重要的类及其功能描述 为了成为系统启动后第一个启动的应用程序,Launcher必须在其Andro... 阅读全文
posted @ 2012-12-24 16:47
GreyWolf
阅读(326)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/liangshengyang/article/details/5905351Laucher的UI组成UI组件属性在layout-port/launcher.xml中定义,主要有Workspace和SlidingDrawer两大部分组成,盛放这两者的容器就是DragLayer。view plain<com.android.launcher.DragLayerxmlns:android="http://schemas.android.com/apk/res/android"xmlns:launcher="http://s 阅读全文
posted @ 2012-12-24 16:39
GreyWolf
阅读(265)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/hmg25/article/details/6574575 android原生自带的桌面文件夹样式及其简单,没有iphone那种可以显示文件夹内文件图标缩略图的功能,今天我们来简单的实现一个。效果如下:从launcher源码中很容易变可以看出需要修改的文件,主要修改FolderIcon.java这个文件。修改后的代码如下:view plainpublicclassFolderIconextendsBubbleTextViewimplementsDropTarget{privateUserFolderInfomInfo;privateLaunchermL 阅读全文
posted @ 2012-12-24 16:38
GreyWolf
阅读(445)
评论(0)
推荐(0)
摘要:
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些 Collection允许相. 阅读全文
posted @ 2012-12-24 16:35
GreyWolf
阅读(186)
评论(0)
推荐(0)
摘要:
http://blog.163.com/fanning_7213/blog/static/249650520107951534574/Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果;第二类是 Frame 动画,即顺序播放事先做好的图像,跟电影类似。本文分析了 Tween 动画的实现原理。主要思路Tween 动画通过对 View 的内容完成一系列的图形变换 (包括平移、缩放、旋转、改变透明度)来实现动画效果。具体来讲,预先定义一组指令,这些指令指定了图形变换的类型、触发时间、持续时间。这些指令可以是以 XML 文件 阅读全文
posted @ 2012-12-24 16:23
GreyWolf
阅读(298)
评论(0)
推荐(0)
摘要:
http://blog.163.com/fanning_7213/blog/static/2496505201071255157497/一、在研究join的用法之前,先明确两件事情。1.join方法定义在Thread类中,则调用者必须是一个线程,例如:Thread t = newCustomThread();//这里一般是自定义的线程类t.start();//线程起动t.join();//此处会抛出InterruptedException异常2.上面的两行代码也是在一个线程里面执行的。以上出现了两个线程,一个是我们自定义的线程类,我们实现了run方法,做一些我们需要的工作;另外一个线程,生成我 阅读全文
posted @ 2012-12-24 16:22
GreyWolf
阅读(385)
评论(0)
推荐(0)
摘要:
ListView 和 Adapter 的基础工作原理:ListView 针对List中每个item,要求 adapter “给我一个视图” (getView)。一个新的视图被返回并显示如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图?NO!这不可能!实际上Android为你缓存了视图。Android中有个叫做Recycler的构件,下图是他的工作原理:如果你有10亿个项目(item),其中只有可见的项目存在内存中,其他的在Recycler中。ListView先请求一个type1视图(getView)然后请求其他可见的项目。convertView在getView中是空(null)的。当 阅读全文
posted @ 2012-12-24 16:13
GreyWolf
阅读(164)
评论(0)
推荐(0)
摘要:
http://apps.hi.baidu.com/share/detail/31516155创建对话框 一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能. Android API 支持下列类型的对话框对象: 警告对话框 AlertDialog: 一个可以有0到3个按钮, 一个单选框或复选框的列表的对话框. 警告对话框可以创建大多数的交互界面, 是推荐的类型. 进度对话框 ProgressDialog: 显示一个进度环或者一个进度条. 由于它是Aler... 阅读全文
posted @ 2012-12-24 16:11
GreyWolf
阅读(225)
评论(0)
推荐(0)
摘要:
http://strivermao.blog.163.com/blog/static/181557159201111215819805/ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来。一般而言,一个ListView由以下三个元素组成:1.View,用于展示列表,通常是一个xml所指定的。大家都知道Android的界面基本上是由xml文件负责完成的,所以ListView的界面也理所应当的使用了xml定义。例如在ListView中经常用到的“android.R.layout.simple_list_item_1”等,就是Android系统内部定义好的一个 阅读全文
posted @ 2012-12-24 16:10
GreyWolf
阅读(120)
评论(0)
推荐(0)
摘要:
在Android平台上,捕获用户在界面上的触发事件有很多种方法,View类就提供这些方法。你在使用各种View视图来布局界面时,会发现几个公用的回调方法来捕捉有用的UI触发事件,当事件在某个View对象上被触发时,这些方法会被系统框架通过这个对象所调用,例如:当一个View(如一个Button)被点击,onTouchEvent()方法会在该对象上被调用,所以,为了捕获和处理事件,必须去继承某个类,并重载这些方法,以便自己定义具体的处理逻辑,显然,你更容易明白,为什么在你使用View类时会嵌套带有这些回调方法的接口类,这些接口称为event listeners,它是你去获取UI交互事件的工具在你 阅读全文
posted @ 2012-12-24 16:09
GreyWolf
阅读(164)
评论(0)
推荐(0)
摘要:
http://blog.csdn.net/wong_judy/article/details/5192814ApplicationsIntentReceiver.class -->Receives notifications when applications are added/removedApplicationsIntentReceiver.class 一个BroadcastReceiver主要实现ap的package的ADD和remove或Change Action:delete分为两种(Intent.ACTION_PACKAGE_REMOVED)HomeScreen上的Item 阅读全文
posted @ 2012-12-24 16:08
GreyWolf
阅读(219)
评论(0)
推荐(0)
摘要:
1.class LauncherSetting{//定义数据的类static final class Favorites implements BaseColumns {//一般通过内部类来实现BaseColumnsURI定义static final Uri CONTENT_URI = Uri.parse("content://" + LauncherProvider.AUTHORITY + "/" + LauncherProvider.TABLE_FAVORITES +"?" + LauncherProvider.PARAMETER 阅读全文
posted @ 2012-12-24 16:07
GreyWolf
阅读(273)
评论(0)
推荐(0)
摘要:
快捷图标有两部分组成,一部分是应用的图标,另一部分就是应用的名称。其实Launcher中的快捷图标只是继承了TextView控件,重绘了一下,将背景弄成浅灰色(具体是什么颜色我也不知道)的椭圆背景,显示的文字颜色则是白色。TextView有android:drawableTop;drawableBottom(上下左右我这里就不全写出来了)属性,用来显示应用的图标。废话不多说了,直接上例子,大家一步一步来,多敲敲代码,成长快一点。第一步:新建一个Android工程,命名为ApplicationDemo.如下图:第二步:在values目录下新建colors.xml文件,定义一些要用的颜色,代码如下 阅读全文
posted @ 2012-12-24 15:50
GreyWolf
阅读(303)
评论(0)
推荐(0)
摘要:
一.创建xml文件,位置:drawable/xxx.xml,同目录下记得要放相关图片<?xml version="1.0" encoding="utf-8" ?><selector xmlns:android="http://schemas.android.com/apk/res/android"><!-- 默认时的背景图片--><item android:drawable="@drawable/pic1" /><!-- 没有焦点时的背景图片 -->< 阅读全文
posted @ 2012-12-24 15:41
GreyWolf
阅读(169)
评论(0)
推荐(0)
摘要:
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-anmt2/Android launcher 的平滑和立体翻页效果我们这里把 Android launcher 程序的 Workspace 相关的代码抽取出来,以一个比较简单的代码来展示 launcher 程序是如何实现多页以及不同页面之间的切换效果。本示例代码在 SDK 2.1 中运行,设置的是 WVGA 的屏幕大小。首先我们来看一下程序运行的效果来一些感性的认识。图 1:平滑移动效果图 2:立体翻页效果回页首窗口页面的布局接着我们来看一下程序 UI(即 View 和 阅读全文
posted @ 2012-12-24 15:37
GreyWolf
阅读(460)
评论(0)
推荐(0)
摘要:
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-anmt1/index.htmlAndroid 平台提供了一套完整的动画框架,使得开发者可以用它来开发各种动画效果,本文将向读者阐述 Android 的动画框架是如何实现的。任何一个框架都有其优势和局限性,只有明白了其实现原理,开发者才能知道哪些功能可以利用框架来实现,哪些功能须用其他途径实现。Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换 ( 平移、缩放、旋转 ) 产生动画效果;第二类是 Frame 动画,即顺序播放事先 阅读全文
posted @ 2012-12-24 15:36
GreyWolf
阅读(462)
评论(0)
推荐(0)
摘要:
感谢网友banketree的收集,压缩包的内容如下:1、360新版特性界面源代码实现了360新版特性界面的效果,主要涉及到Qt的一些事件处理与自定义控件。但源码好像是c++。2、aidl跨进程调用服务端onBind暴露,然后客户端bindService得到aidl对象3、UI设计之 仿做蘑菇街UI设计 源码包含viewflipper 用来显示一个展示幻灯片banner 用到了OnGestureListener,OnTouchListener接口。4、Android 程序的安装、卸载和更新通过Intent机制,调出系统安装应用/卸载应用,直接调用安装接口,5、Android有未接来电后处理(判断 阅读全文
posted @ 2012-12-24 14:29
GreyWolf
阅读(1024)
评论(0)
推荐(0)
摘要:
<!-- 最近接触WebView比较多,总结一下使用过程中遇到的一些问题和解决办法 -->1.WebView无法缓存(Cache) 如果页面的Header包含了以下字段就会导致无法缓存(具体可参考CacheManger.parseHeaders()方法): Cache-Control:no-store, no-cache Pragma:no-cache 需要由服务器更改页面属性解决。2. WebView.getFavIcon()无法获取到页面图标 必须先执行以下操作(打开图标数据库):WebIconDatabase.getInstance().open(getDir( " 阅读全文
posted @ 2012-12-24 14:04
GreyWolf
阅读(510)
评论(0)
推荐(0)
摘要:
1.当只用WebView的时候,最先注意的当然是在配置文件中添加访问因特网的权限;2.如果访问的页面中有Javascript,必须设置支持Javascript:Java代码 webview.getSettings().setJavaScriptEnabled(true);复制代码3.如果希望点击链接由自己处理而不是新开Android的系统browser中响应该链接.给WebView添加一个事件监听对象(WebViewClient)并重写其中的一些方法 shouldOverrideUrlLoading对网页中超链接按钮的响应Java代码mWebView.setWebViewClient(new 阅读全文
posted @ 2012-12-24 13:53
GreyWolf
阅读(598)
评论(0)
推荐(0)

浙公网安备 33010602011771号