随笔分类 - Android
摘要:先简单介绍下5.0版的变化。5.0最大的特色是调用简单,采用了链式语法,形如:new ShareAction(context).setPlatform(share_media) .withText(content).withTitle(title) .withMedia(...
阅读全文
摘要:总结一下: 参考: 《Android开发艺术探索》《Android - 事件模型》https://www.cnblogs.com/bill-joy/archive/2012/03/20/2407928.html
阅读全文
摘要:流行的思路如下【2015-11-20更新】:1.让Service杀不死。Service的onStartCommand返回START_STICKY,同时onDestroy里面调用startService启动自身。2.让Service从后台变成前置。在Android 2.0以前有效,借助setForeg...
阅读全文
摘要:一般使用Android Studio生成javadoc会有两个问题:空指针异常文档乱码解决办法如下:第1个问题:Tools --> Generate JavaDoc -->打开对话框活,在"Other command line arguments"输入 “-bootclasspath /Users/...
阅读全文
摘要:首先,为了避免滑动冲突,我们要继承ViewFlow,重写onInterceptTouchEvent 1 public class MyViewFlow extends ViewFlow { 2 private ViewPager mPager; 3 4 public MyViewF...
阅读全文
摘要:我们直接在公司项目中使用,效果良好!分享出脚本代码,希望对Android研发的同学有帮助。提示,初学python,开发环境是Sublime Text 2,直接Ctrl+B的,其他环境下没调试过。应该差不多^^##################################################环境: win + python 2.7#作者:马波#邮箱:mabo02@baidu.com#部门:hao123-无线#说明:首次使用时lint分析会耗几分钟,请耐心等待。# 使用前先clean工程,确保工程bin下重新生成dex,# 以便lint进行分析。如果要lint...
阅读全文
摘要:我们平时设置图片的时候,几乎都忘记回收老的(背景)图片,比如:TextView.setBackgroundDrawable()TextView.setBackgroundResource()ImageView.setImageDrawable()ImageView.setImageResource()ImageView.setImageBitmap()这样造成内存浪费,积少成多,整个软件可能浪费不少内存。如果记得优化,整个软件的内存占用会有10%~20%的下降。// 获得ImageView当前显示的图片Bitmap bitmap1 = ((BitmapDrawable) imageView.g
阅读全文
摘要:这个东西有顾名思义是碎片,和之前的Activity对应。坑1:一般情况都会想当然的以为进程被杀掉之后,Fragment也会被回收其实,Fragment有自己的生命周期,有自己的管理器(FragmentManager),也即:包含Fragment的进程被干掉,Fragment不一定会被回收,而是由FragmentManager来决定生死。Q:如何验证上面的说法?A:如果是一般正常的流程“打开-关闭”软件,Fragment的确被回收了。但是如果使用“腾讯手机管家”之类的内存清理工具,清理内存(实际上是杀死进程),会发现Fragment没有被回收,一直缓存着。验证方法如下:缓存Fragment的Ta
阅读全文
摘要:PopupWindow在4.0之前的版本有个系统级别的BUG,必须借助一段自定义的fix代码来修复。其中mPopPm就是PopupWindow实例。java.lang.NullPointerExceptionat android.widget.PopupWindow$1.onScrollChangedif (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { try { final Field fAnchor = PopupWindow.class.getDecl...
阅读全文
摘要:常见问题:app卸载后,桌面快捷方式仍然存在app安装后,桌面有重复的快捷方式解法(转):Android Launcher开发之自动添加桌面快捷方式及实际开发中常见问题的解决方案参考文章:http://blog.csdn.net/t12x3456/article/details/7857925
阅读全文
摘要:自己的机器 android 2.3,刷的小米系统,曾经执行成功过一次,前后传的版本号也正确,后来死活不执行,确实是调用的getWritableDatabase(),看了Android源码,也没发现异常。百思不得其解!换了公司的一台测试机,又可以。由此暂时断定这个onUpgrade不靠谱,自己写了一套升级sqlite数据库的逻辑。在assets下做一个update.sql文件,然后读取文件,一行行的执行sql;若升级成功,在库里面写个标记。注意:update.sql里面,一个完整的操作,其包含的句子需要合并成一行。代码如下(只是思路,不可直接copy使用): private void up...
阅读全文
摘要:实践了下Moscrif,就是那个javascript开发native app的解决方案。与PhoneGap等方案不同的是,PhoneGap是糅合html的解决方案,不是真正的Native APP(性能打折扣);而Moscrif则是利用javascript开发Native APP,也即用javascript代替Object C/Java去开发Native APP。目前支持Android,IOS和Bada(三星的OS),比较有意思。代码的确是javascript,导出的demo游戏apk在自己的手机上跑得很欢。可免费使用,开源。前端转手机开发的有福了。目前还在体验中。参考:http://www.i
阅读全文
摘要:看错误是类没有找到,但是代码中确实有这个类,编译没错,执行的时候报这个异常。我同事的机器没事,我的有问题。想了一下差别,就是.classPath文件不一致。后来进 project - properties-java build path - Order and Export,试着调了一下顺序,让工程名/gen在工程名/src之上,问题居然解决了。2012年8月3日补充:升级到最新版的ADT之后彻底解决问题。
阅读全文
摘要:做麦芒的时候碰到过,网上搜了,似乎没有解法,自己仔细看了下public boolean onKeyDown(int keyCode, KeyEvent event)发现有个布尔返回值 ,因此联想到javascript的事件冒泡,突然有了思路。看了下文档,发现返回false的时候,事件继续传递,不被吃掉。解决办法,在父Acitiviy写好OnKeyDown事件处理代码后,在子Acitivity中加入:@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){returnfalse;}补充:发现规律,如果子Activity是MapActiv
阅读全文
摘要:网址 :http://www.maimang.co安卓官方市场:https://market.android.com/details?id=com.maimang.lbs困难:中间碰到不少难题,比如内存泄漏、拍照兼容性 、手指滑动特效冲突、国行Android手机不能利用WIFI/AGPS定位(因为出于安全考虑,国内阉割了这部分功能)。但这些总算过去了。解决办法:下一步打算深入研究一下底层,把一些兼容性问题,从底层给解决了:)感慨:Android的软件版本和硬件都分裂得确实太严重了,亟待统一开发标准,让开发者少白一些头发吧。
阅读全文
摘要:mInfo=(EditText)findViewById(R.id.fabu_info);mInfo.setOnFocusChangeListener(newOnFocusChangeListener(){publicvoidonFocusChange(Viewv,booleanhasFocus){EditText_v=(EditText)v;if(!hasFocus){//失去焦点_v.setHint(_v.getTag().toString());}else{Stringhint=_v.getHint().toString();_v.setTag(hint);_v.setHint(&quo
阅读全文
摘要:Android利用ActivityGroup加载子Activity,子Activity调用对话框,弹出:ERROR/AndroidRuntime(10104): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@45a58ee0 is not valid; is your activity running?原因分析:因为new对话框的时候,参数content 指定成了
阅读全文
摘要:网上搜了很多,都要使用Canvas,这个绝对是绕远了……经实验,图片裁切只要一句就可以 ,下面是我写的一个按正方形区域裁剪的方法/***按正方形裁切图片*/publicstaticBitmapImageCrop(Bitmapbitmap){intw=bitmap.getWidth();//得到图片的宽,高inth=bitmap.getHeight();intwh=w>h?h:w;//裁切后所取的正方形区域边长intretX=w>h?(w-h)/2:0;//基于原图,取正方形左上角x坐标intretY=w>h?0:(h-w)/2;//下面这句是关键returnBitmap.cr
阅读全文