Android2.1及以下版本打开应用都是用如下图所示的这个抽屉:
个人觉得要是做自己的Launcher最后把它换成自己的图片,下面给大家说一下我更换图标的方法:
1) 更换这个图标是不需要修改代码的,找到图片所在的位置,用自己的图片替换即可。下面我们查找图片所在的位置:
2) 找到res/layout-port/Launcher.xml,至于为什么是layout-port而不是layout-land,它们俩有什么区别我就不给大家解释了,百度一下。
3) 找到Launcher.xml中的<com.zwq.launcher.HandleView>标签,这个就是显示handle的地方,看它的src和background属性分别引用了哪个配置文件。android:background="@drawable/handle"和android:src="/blog_article/@drawable/handle_icon/index.html"。
4) 现在大家清楚了吧,背景的定义在drawable/handle.xml中,显示图标的定义在drawable/handle_icon.xml中,要修改哪个就去哪个配置文件找图片的位置。
5) 按drawable/handle.xml中定义的找到res/drawable-port-mdpi文件夹,替换tray_handle_normal、tray_handle_pressed和tray_handle_selected三张图片。其他好几个以drawable开头的文件夹里面也有着三个文件,为什么不替换它们,百度搜索它们的区别,我就不多说了。
6) 替换之后的效果如下图:
7) 扩展:如想在这个图标的两边也放一下其他应用图标或文件夹,那就在launcher.xml中把<com.zwq.launcher.HandleView>标签的layout_width属性的值由fill_parent改为你图标的宽度,我这儿改成了60dip。<com.zwq.launcher.DeleteZone>标签中的layout_width属性也要做相应的调整。还有最重要的就是要把celllayout的cell布局调整一下,这个看我之前的一片文章。
1.关闭进程/进程管理
a. 直接终止进程,释放内存
@Override
protected void onDestroy() {
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
super.onDestroy();
}
b.关闭所有进程
ActivityManager am;
am = (ActivityManager) MainActivity.this.getSystemService(ACTIVITY_SERVICE);
ActivityManager.RunningTaskInfo amTask = (RunningTaskInfo)am.getRunningTasks(10).get(0);
String packageName = amTask.baseActivity.getPackageName();
am.restartPackage(packageName);
注意:
在androidManifese文件中要声明权限
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
<uses-permission android:name="android.permission.GET_TASKS" />
2.listview和scrollview冲突问题
如果在scrollview中加载一个listview则listview只能显示一行多一些
简单的解决方法是计算出listview高度将其写死
另外解决办法http://xiaoxixi615.blog.sohu.com/166299880.html(Android 中AsyncTask结合ScrollView+listview的实现)
http://gundumw100.iteye.com/blog/854878
从目前的情况看,无线互联的应用充满了机会,但在这些机会中隐藏了很多陷阱。作为技术开发能力强大的程序员,如何辨别这些机会和陷阱呢,这里给大家提供一些基本的判断。
一、应用开发是面向现在还是面向未来?
绝大多数程序员在开发应用的时候,只看到目前技术是什么状态、用户是什么需求,而没有更多地看未来是什么样子,这就导致在开发应用的时候,更多的是面向现在(甚至面向过去)进行开发,解决的是用户当下的需求。但是无线互联的发展将会十分迅速,新技术、新应用将层出不穷,不能面向未来进行开发,任何产品都是没有持久生命力的。
在无线互联网领域,过去以及现在的技术障碍主要有:
带宽不够。由此带来流量费过高,因此有人会针对这一点进行节约流量的应用开发,这些能够满足当前用户的需求,但是,未来的带宽一定不会是关键的问题,那么这些应用就会失去存在的理由。
不能直接访问互联网。因此很多免费WAP网站有了存在的环境,其实它起到的作用就是将互联网内容转移到无线互联上来,一旦手机能直接访问互联网,他们将毫无优势可言。
依赖不同运营商。运营商的支撑平台功能无法交叉调用,造成各个平台上的功能单调,同时运营商不向合作伙伴提供相关必要功能。因此,基于一个简单平台自己开发所有功能的应用,在未来都会受到很大的冲击。
如此说来未来是什么样子呢?WiFi手机将普及,流量将以包月套餐为主,因此大带宽应用将成为可能。脱离运营商的新无线互联产业链将会成型,大量公司会提供开放的功能接口供第三方开发者调用,解决了开发者获得基本应用能力的问题。这些都有可能是我们面向未来进行创业的机会。
二、应用开发是否挡了巨人的路?
无线互联的革命是以iPhone和Android为代表引爆的。其优秀的操作系统给了开发者足够的空间,因而很多创业者都在找Android里还没能提供的功能或者还没能做好的应用做开发,希望借着大家对Android的追捧来提升自己的价值。然而,这样做是相当危险的,因为操作系统是基本,提供操作系统的厂商必然会长期投入重兵,今天的缺陷,明天必然会被重点改进。除非创业者有打败苹果、谷歌的决心和能力,否则,就要考虑你的开发是不是挡了他们未来的路?
例如,手机浏览器是现在无线互联最火的应用之一,但Symbian已经推出了自己的浏览器,iPhone也支持自己的浏览器,我们相信Android未来也很快会自带浏览器。就像微软捆绑IE打败了Netscape一样,因为浏览器本来就是手机操作系统的一部分。因此,作为创业者,我们一定要时刻提醒自己,是不是挡了哪个“大家伙”的路?
三、应用开发是否只是局部的改造?
无线互联应用开发已经进入了“骑士”时代,这意味着两三个人就可以独立开发应用。同时也意味着任何创造力不够的应用都会被很多人想到、被很多人开发,进而在市场上出现大量相似版本的应用。这会使其中任何一个版本都难以脱颖而出。
最近,无线互联领域内出现一个新名词:“微创新”。这个概念一夜之间被广为传诵,并被很多创业者认为是找到了捷径。其实,这个概念对创业者是很大的误导,甚至会有伤害。因为“微创新”不是根本性的创新,不能形成有效的知识产权保护,很容易被更大的竞争对手“抄袭”,对弱小的创业者来说,这种抄袭是致命的。所以,对“微创新”,适用于要么市场中尚无强大的同类型竞争对手,要么本身就是大企业在做,作为初创期的创业企业或者个人开发者,光靠微创新是远远不够的。
作为个人程序开发者,找到创新机会、捕捉未来机会不是没有可能的。例如,在无线互联领域,当涌现出众多的应用时,怎么把应用系统性、针对性地推介到每个用户那里就成了商机;当SNS和微博方兴未艾的时候,更多基于人际传播和影响力传播的应用就有了生命力;当运营商的控制力逐渐减弱的时候,P2P的应用形式就有了空间……
作者简介:王煜全,Frost & Sullivan首席咨询顾问。
(本文来自《程序员》杂志10年11期)