摘要:
在Workspace.Java类实现,相关方法有:1) computeScroll():重写了父类的computeScroll();主要功能是计算拖动的位移量、更新背景、设置要显示的屏幕(setCurrentScreen(mCurrentScreen);)。2) dispatchDraw():重写了父类的dispatchDraw();主要功能是判断抽屉是否打开、绘制指定的屏幕,可以绘制当前一屏,也可以绘制当前屏幕和下一屏幕,也可以绘制所有的屏幕,这儿的绘制指显示屏幕上的child(例如:app、folder、Wiget)。和computeScroll()中的setCurrentScreen(m 阅读全文
摘要:
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 阅读全文
摘要:
// 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 阅读全文
摘要:
今天开始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资源的位... 阅读全文
摘要:
使用用ADW的Launcher的人应该有点印象里面的功能,就是拖拽应用或者Widget图标到删除图标上,停留1秒以上,则会显示"Drop to uninstall"的提示,放开则打开卸载该程序的界面,现在就是要分析模仿这个功能。主要用到有两方面的东西,卸载和停留提示。卸载主要使用的是:Java代码IntentuninstallIntent=newIntent(Intent.ACTION_DELETE, Uri.parse("package:"+mUninstallPkg)); DeleteZone.this.getContext().startActiv 阅读全文
摘要:
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 阅读全文
摘要:
http://blog.csdn.net/hpoi/article/details/4632378很多时候,利用触摸屏的Fling、Scroll等Gesture(手势)操作来操作会使得应用程序的用户体验大大提升,比如用Scroll手势在浏览器中滚屏,用Fling在阅读器中翻页等。在Android系统中,手势的识别是通过 GestureDetector.OnGestureListener接口来实现的,不过William翻遍了Android的官方文档也没有找到一个相关的例子,API Demo中的TouchPaint也仅仅是提到了onTouch事件的处理,没有涉及到手势。Android Develo 阅读全文
摘要:
Inflater英文意思是膨胀,在Android中应该是扩展的意思吧。LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button,TextView等)。(0)她可以有很多地方可以使用,如BaseAdapter的getView中,自定义Dialog中取得view中的组件widget等等。它的用法有2种:复制到剪贴板Java代码viewplaincopytoclipboardprint?Layou 阅读全文
摘要:
// 相对于给定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 阅读全文
摘要:
http://blog.csdn.net/droidpioneer/article/details/6758057操作过Android手机的朋友应该对在待机界面拖动图标的交互效果都有比较深刻的印象,比如说,当把图标拖动起来,图标会悬浮并随着拖动变换位置,当拖动释放后,图标会自动的寻找附近合适的空白网格位置。Android在实现这个效果的过程中采用了很多编程技巧,本文着重论述的VacantCell缓存就很具有代表性。VacantCell缓存主要是对同一种类型对象的缓存机制,这种机制的目的是复用已经分配过但已过期的对象,从而避免频繁的new新的对象。我们知道对象分配是一件比较耗费系统资源的事情,在 阅读全文