android
Code Man
这个作者很懒,什么都没留下…
展开
-
一行注解处理Android23+权限 AbcPermission 重要更新
一行注解处理Android23+权限 AbcPermission 重要更新关于 AbcPermission 的概念 这里 有详细的讲解。但是在以前的版本中我们都不能对用户授权后进行回调,虽然用户只在初次授权的时候会多一次操作,但对用户体验影响不大。为了更加优化用户体检,从 V1.6 以后 AbcPermission 支持对 无返回值的方法 进行回调,并且其回调流程已统一整合在 AbcPerperm原创 2017-12-19 14:57:36 · 645 阅读 · 0 评论 -
Android WebView 使用JavaScript注意事项
当向WebView通过webView.loadUrl("javascript:" + jsString)注入单独的js文件(如:testJs.js)时,js文件中不能有以“//”形式的注释符,否则执行到该注释时会将其后的代码视为被注释了;“/* */”可以使用。demo:/*code.src="http://www.baidu.com 默认值*/var code = document.g原创 2016-10-31 09:52:15 · 439 阅读 · 0 评论 -
onAttach(Context) 在Fragment中没有调用
原文自:http://blog.csdn.net/hiccuphiccup/article/details/51009211转载 2016-11-10 16:52:18 · 616 阅读 · 0 评论 -
onReceivedTitle()不被调用问题解决
情景说明今天在写一个WebView界面,该Webview中有两层网页跳转,跳转后更新ActionBar中的标题。测试时发现三星手机在WebView回退(即:goBack())后ActionBar中的Title不更新,而Nexus6p Android7.0可以更新Title。Debug后找发现是由三星手机在WebView回退时不会调用WebChromeClient.onReceivedTitle(原创 2016-10-17 17:57:58 · 4034 阅读 · 2 评论 -
ConstraintLayout初体验
ConstraintLayout出来已经有段时间了,之前没太关注,主要是ConstraintLayout还处于alpha版本,现在已从alpha1升级到beta2可以以考虑入手了^_^。使用前引入添加ConstraintLayout支持库,一般都是这种方式:compile 'com.android.support.constraint:constraint-layout:1.0.0-a原创 2016-11-03 14:44:33 · 637 阅读 · 0 评论 -
android自定义view 模仿win10进度条
看到一篇仿win10进度条的blog,思路很清晰,但还存在一些细节问题,原文回复不下,这里单独开一篇。原文地址如下:http://blog.csdn.net/zhangml0522/article/details/52556418#java预览图:原理直接看上面地址就行了,这里直接贴出修改后的代码(仔细看注释):/** * 模仿win10进度条 * 参考blog:http://blog.c翻译 2016-09-22 15:29:40 · 1711 阅读 · 2 评论 -
android中popupwindow弹出后,屏幕背景变成半透明
原文来自http://blog.csdn.net/chenguang79/article/details/43016519转载 2016-10-21 14:43:13 · 396 阅读 · 0 评论 -
Android 硬件加速
从Android3.0 (API level 11)开始,Android的2D显示管道被被设计得更加支持硬加速了。硬加速使GPU承担了所有在View的canvas上执行的绘制操作。充分利用GPU的特性,可以使得绘制更加平滑,但是会多消耗一些内存。由于硬件加速自身并非完美无缺,如果你的应用只使用标准的view和Drawable,全局启用硬加速将不会带来任何负面影响.然而硬加速不是被所有的2D绘制所支持原创 2016-09-23 00:58:11 · 636 阅读 · 0 评论 -
EditText实现“眼睛”效果
EditText作为密码输入框时,常在右侧有一个眼睛的图片,以便于向用户展示密码,百度了一下多是通过自定义EditText实现的;这里换个思路通过EditText的drawableRight实现。1.准备个EditText<EditText android:id="@+id/et_pwd" android:paddingRight="10dp"原创 2016-09-18 14:13:41 · 6612 阅读 · 0 评论 -
解决含EditText页面的软键盘自动弹出问题
在含有EditText的界面软键盘一般会自动弹出,这样会影响界面的显示效果,需要我们把软键盘关闭,方法如下:方法一:在AndroidMainfest.xml中选择那个activity,设置windowSoftInputMode属性为adjustUnspecified|stateHidden<activity ... android:windowSoftInputMo原创 2016-09-10 14:07:41 · 498 阅读 · 0 评论 -
Android计步器的实现(2)
上一篇见:Android计步器的实现(1)2.计步器服务的实现原创 2016-11-28 16:17:05 · 3724 阅读 · 2 评论 -
Android计步器的实现(1)
最近项目中要加一个计步器的功能,Github上搜索一堆,都是bug漫天飞(微信也有bug^_^,关于bug的原因有:异常开关机、调整手机时间、正常开关机、跨天问题,这几种原因复合在一起更容易造成计步数异常),只好自己实现一个;下面开始正文:计步器原理实现计步器几步一般有2种方法:1.利用加速传感器,通过计算二次波峰来确定每一步,这种方法误差比较大,但普适性好;2.利用Android4.4之后的原创 2016-11-28 15:19:18 · 11877 阅读 · 3 评论 -
Android设备Root检测方法
app发布后,一些root用户可能会修改我们应用的一些信息,如传感器获得的数据,那么这些用户的数据就不在具有参考价值,应该被单独列出,以方便数据的分析,所以就有了本文。下面是检测Android设备是否被root的4种方法:1.判断Build标志String buildTags = android.os.Build.TAGS;if (buildTags != null && buildTags原创 2016-11-17 13:51:15 · 4152 阅读 · 0 评论 -
真正的一行注解获取Android23+权限 重要更新 接入优化
真正的一行注解获取Android23+权限 重要更新 接入优化前言由于部分读者反映 AbcPermission 的接入方式太麻烦,利用周末时间我写了个 gradle 插件用于简化接入流程。这里提供了 2 套接入方案:一为最简便的;另一个支持版本自定义(如果你一直用最新版,这个可以忽略)。AbcPermission 的概念 这里 有详细的讲解。这里是一次重要的升级,也可以直接看 AbcPermissi原创 2017-12-25 15:35:49 · 700 阅读 · 0 评论 -
真正的一行注解处理Android23+权限
真正的一行注解处理Android23+权限关于 Android 23 及其以上版本的权限获取库,github 上有很多比较优秀的开源项目,如:RxPermission,AndPermission,PermissionGen 等。似乎我们不需要再纠结 23+ 上的权限问题了,但是(开始转折)这些开源项目的权限处理都可以用下面的流程图表示:图一正如上图所示这些开源项目无论用什么技术封装的都需要我们实现红原创 2017-12-04 10:44:13 · 1935 阅读 · 0 评论 -
实现 AlertDialog 点击确定按钮不关闭
当我们在使用AlertDialog时,无论点击“确定”(PositiveButton)还是“取消”(NegativeButton),对话框都会消失,这在某些情景下是不合理的。例如下面这种情况:AlertDialog 里面有必填或必选项,当用户没有输入或选择时就点击了确定,这时对话框不应该消失的,而是应该提示用户完成填写或选择后才能进行下一步。关于 AlertDialog 实现上面的效果,百度了一下多原创 2017-07-19 16:52:10 · 2962 阅读 · 1 评论 -
RecyclerView 上拉加载更多及滚动到底部的判断(上)
关于下拉刷新上拉加载更多,网上有很多例子;下拉刷新比较简单直接使用系统提供 SwipeRefreshLayout 即可,比较麻烦的是上拉加载更多,实现上拉的方法多种多样,这里对各个方法总结一下。需求分析RecyclerView 滚动到底部后,用户再往上拖拽(这里使用场景是拖拽,而不是手指离屏后的自动滚动到底部)时,RecyclerView 展示出 加载更多 的字样并请求更多的数据,请求成功后更新 R原创 2017-06-02 10:33:12 · 4365 阅读 · 1 评论 -
为 RecyclerView 添加 OnItemClickListener
由于 RecyclerView 没有提供 OnItemClickListener ,只提供了一个 OnItemTouchListener ,导致网上各种方式实现 OnItemClickListener ,看了几篇 blog 也没有符合我口味的代码…还是自己实现一遍吧。1.自定义 RecyclerView自定义 RecyclerView 直接继承 v7 的 RecyclerView 即可,不需要复杂的原创 2017-04-10 14:41:38 · 710 阅读 · 0 评论 -
support-v4、support-v7 的依赖关系及 Getting java.util.zip.ZipException: duplicate entry exception 的处理
最近在编译项目时,多次出现了 java.util.zip.ZipException: duplicate entry exception android/support/vX/.../xxx.class 异常;该异常是由于多个 module 或 第三方库(这个是主要原因)引用了不同版本的 support 库引起的;为了解决这个问题顺带把 Android support 库和几个第三方库的依赖关系原创 2017-04-06 22:08:16 · 2363 阅读 · 1 评论 -
Android studio 如何查看 library 间的依赖关系
上一篇 support-v4、support-v7 的依赖关系及 Getting java.util.zip.ZipException: duplicate entry exception 的处理 例举了几个常用 library 的依赖关系,本文简单介绍一下查看 library 的依赖关系的具体方法。一、配置环境Android Studio中使用的 gradle 版本一般不是最新版,所以在使用其自带原创 2017-04-07 15:32:37 · 18576 阅读 · 3 评论 -
最省事的Tinker接入演示
最近项目要加上热更新功能,经过对比后,选择了微信的Tinker。关于Tinker的使用,Tencent/tinker的wiki十分详细。想要正确接入要看很多内容, 对于新入手的童鞋来说实在太痛苦了,所以就有了本文,只需要简单的修改几行代码就能体验Tinker的使用;demo跑得通才能更好的学习Tinker的使用。微信Tinker源码 我修改的微信demo 下面所有的内容都是基于我修原创 2016-12-22 20:45:09 · 727 阅读 · 0 评论 -
Android增量升级之bsdiff.c:(.text+0x151b):对‘BZ2_bzWriteOpen’未定义的引用的解决
最近在做Android增量升级,在编译bsdiff工具时遇到了下面的问题:bsdiff.c:(.text.startup+0x2e4):对‘BZ2_bzWriteOpen’未定义的引用bsdiff.c:(.text.startup+0xb29):对‘BZ2_bzWrite’未定义的引用bsdiff.c:(.text.startup+0xcbb):对‘BZ2_bzWrite’未定义的引用bsd原创 2016-12-15 15:55:28 · 2202 阅读 · 0 评论 -
Android studio plugins
http://blog.csdn.net/liang5630/article/details/46366901 http://www.codeceo.com/article/8-android-studio-plugins.html http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2015/1009/3557.html http:原创 2016-08-17 15:27:53 · 515 阅读 · 0 评论 -
ListView上拉加载
ListView上拉加载原创 2016-07-31 23:36:33 · 419 阅读 · 0 评论 -
ubuntu14.04的error while loading shared libraries: libz.so.1问题
原文地址: http://blog.csdn.net/stephen_yu/article/details/45645073 最近,在ubuntu14.04下使用adt进行编译android项目时候,eclipse的Console报出了如题所示的错误。解决方案如下: 思路:安装这个库所在的包 。1.找到libz.so.1所在的包: 通过命令: apt-file search 来查找转载 2016-01-29 14:06:58 · 12186 阅读 · 1 评论 -
FFmpeg 2.8.4 移植到android平台(二)
上一篇移植过程太过复杂,又发现了一种简单的方法。移植前准备:见http://blog.csdn.net/niuzhucedenglu/article/details/50524266 前三部。移植步骤:1.将ffmpeg解压到NDK的sources目录下(如:/home/lfn/software/android/android-ndk-r9d/sources);2.修改configure文件:原创 2016-01-19 14:17:18 · 2900 阅读 · 1 评论 -
mx4 如何连接eclipse
链接:http://www.zhihu.com/question/26245688转载 2016-01-20 10:13:18 · 837 阅读 · 2 评论 -
ViewHolder使用小结
1.ViewHolder.xxx = (xxx)findViewById(xxxx) ;后如果对该属性的属性值进行了修改,则后续的逻辑分支中必须对该属性值进行修改才能得到新的显示效果,否则,会出现显示错乱。原创 2015-06-19 13:46:49 · 503 阅读 · 0 评论 -
跳转webview白屏(黑屏)问题解决
原因分析:由activity跳转到WebView时会发生一段白屏(黑屏)现象,是由于此时未完全获得网页数据,导致webview暂时为空,其时间长短依网络状况而定。解决方法:webview.setWebViewClient(new WebViewClient() {@Overridepublic void onPageStarted(WebView view, String ur原创 2015-07-15 12:20:39 · 5758 阅读 · 0 评论 -
Intent的简介以及属性的详解
转载自http://liangruijun.blog.51cto.com/3061169/634411 虽然不是很详细,但已经十分不错了一.Intent的介绍Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负转载 2015-07-21 17:16:37 · 526 阅读 · 0 评论 -
关于zxing设置hints.put(EncodeHintType.MARGIN, 0)无明显效果的探究
zxing设置hints.put(EncodeHintType.MARGIN, 0)无明显效果原创 2015-11-09 15:48:03 · 20688 阅读 · 1 评论 -
TextView 添加Onclick 无效
TextView 添加Onclick 无效原创 2015-11-11 10:38:42 · 709 阅读 · 0 评论 -
android通过led实现手电筒
第一步 添加权限: <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-feature android:name="android.hardware.camera" /原创 2016-01-12 10:46:08 · 1700 阅读 · 1 评论 -
Android WebView加载带有Input的输入框时点击无法弹出软键盘的问题解决
方案一:http://www.2cto.com/kf/201412/359293.html方案二:mWebView.requestFocus(View.FOCUS_DOWN) ;或者this.mWebView.requestFocusFromTouch() ;(百度的,对我的不起作用)方案三:由于table嵌套使input输入框失效,去除table标签后可弹出软键盘。原创 2016-02-15 15:22:35 · 8399 阅读 · 2 评论 -
Eclipse 项目名称前出现大红色叹号分析
eclipse在引用别人的项目或者自己不经意修改后会出现大红色叹号,如图:解决办法如下:1.修改libs目录下的*.jar的名称*.jar引用的多了,难免会出现重名,或者名称不清晰的情况,这时我们往往通过Refactor(Alt + Shift + T) | Rename (Alt + Shift + R)来直接修改*.jar的名称,这时就会出现大红色叹号的错误。解决方法:在项目目录下找到.c原创 2016-03-30 09:38:50 · 1651 阅读 · 0 评论 -
WiFi开发详解
最近某数字wifi连接助手更新后体积变大,广告及与wifi连接不相干的功能增加了很多,于是打算自己写个wifi助手(谁让咱是程序员呢)1.wifi功能与硬件和网络相关,所以我们需要添加以下权限:<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission> <uses-原创 2016-03-05 23:13:47 · 1157 阅读 · 0 评论 -
RxJava的使用
RxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这个看不明白不要紧,等我们会使用RxJava后,自然就原创 2016-06-14 00:27:07 · 546 阅读 · 0 评论 -
一个demo理解什么是Dagger2
标题之所以是Dagger2是因为我没看Dagger^_^,具体Dagger2与Dagger有什么区别请百度这里不再赘述。使用Dagger2前准备工作1.配置apt插件apt插件是用于自动生成代码的,因为Dagger2放弃了反射的方式,而是选择在编译项目时根据注解自动生成相应代码,以提高app性能。即:在编译项目过程中,apt插件根据注解自动生成实际运行的代码。1.配置apt插件(在build.原创 2016-05-31 22:04:29 · 926 阅读 · 0 评论 -
一个demo理解什么是MVP
所谓MVP就是视图,控制逻辑,数据的三者的分离,但是分离后我们还需要“控制逻辑层”P操作M(数据层)或V层(视图层),这就需要每一层都实现一个接口,以方便其他层的调用。不理解的童鞋直接看下面代码。(MVP的详细概念百度之,这里不再赘述)上面的图片展示的是登录模块的MVP目录结构,每层的实现类都继承了该层的接口。登录功能如下图:当用户点击登录时,会显示出一个Progressbar,根据返回结果用原创 2016-05-30 00:39:53 · 1435 阅读 · 3 评论 -
Android Library项目注意事项
转载自:http://bbs.csdn.net/topics/390771305转载 2016-05-27 15:58:41 · 465 阅读 · 0 评论