2014-06-30 码农明明桑
在Android开发中,我们使用android.util.Log来打印日志,方便我们的开发调试。但是对于正式发布的程序,我们并不希望这些Log信息显示,一方面对于用户来说影响机器性能,另一方面,其他开发者看到这些信息的时候,对我们应用程序的安全是有威胁的。所以,我们需要在正式发布时不让Log执行,或者将其移除。这里,我提供三种方法。 自己写一个Log的帮助类,在类中设置显示级别 示例代码如下,通过一个静态变量设置Log的显示级别。 more ```java public class Log { public static int logLevel = Log.VERBOSE; public static void i 继续阅读 »
2015-12-21 码农明明桑
默认情况下情况下,使用Android的WebView是不能够支持上传文件的。而这个,也是在我们的前端工程师告知之后才了解的。因为Android的每个版本WebView的实现有差异,因此需要对不同版本去适配。花了一点时间,参考别人的代码,这个问题已经解决,这里把我踩过的坑分享出来。 主要思路是重写WebChromeClient,然后在WebViewActivity中接收选择到的文件Uri,传给页面去上传就可以了。 more 创建一个WebViewActivity的内部类 ```java public class XHSWebChromeClient extends WebChromeClient { // For Androi 继续阅读 »
2016-08-02 Jamling
Android倒计时控件,通常在发送验证码时用得最多。其实Android系统提供了一个倒计时控件叫做CountDownTimer,不过这个控件没有与界面控件绑定,在这里,我要讲述的是如何自己写一个倒计时的控件。 源码 首先放上CountDownButton的源码 ```java /** * CountDownButton used for send phone verify code etc. * * @author Jamling */ public class CountDownButton extends RoundButton { private long totalTime = 60 * 1000;/ 继续阅读 »
2018-09-21 Roger
Android Accessibility 的少许开发经验 What's Accessibility 简单来说 Accessibility 就是为了让一些残障人士也能正常使用手机或 App 的基本功能,主要包括 Talkback ,视弱的支持等,具体参见:https://developer.android.com/guide/topics/ui/accessibility/ 继续阅读 »
2016-09-19 Jamling
使用海马玩模拟器来调试Android还是挺方便的。最近因为真机连接不稳定,又想到了海马玩,不知道怎么回事,竟然运行不了模拟器了,只好下载了一个新版本,然后重新安装。安装完毕之后,竟然找不到devices。我记得,以前可是好好的呢。搜索了一下。说是要手动连接 bash adb connect 127.0.0.1:53001 可是,出现了unable to connect错误。后来在官方论坛里找到了原因。原来是自从0.8.5版本之后,海马玩的adb端口不是固定的。我下载的是新版本(0.10.5),当然连接不上了。官方论坛帖子中有说明需要下载修改器修改。存放在网盘上的文件,下载还要注册。懒得搞。因为海马玩经常在待机时无响应,所以对它的 继续阅读 »
2014-11-13 码农明明桑
动画在Material Design设计中给用户反馈放用户点击时,并且在程序用户界面中提供连贯的视觉。Material主题为按钮(Button)和activity的转换提供了一些默认的动画,在android5.0(api 21)和更高的版本,你可以自定义这些动画和创建一个新动画: Touch feedback(触摸反馈) Circular Reveal(循环揭露效果) Activity transitions(Activity转换效果) Curved motion(曲线运动) View state changes (视图状态改变) more 自定义触摸反馈 触摸反馈在Material Design中在触摸点提供了一个即时视觉确认 继续阅读 »
2013-09-11 码农明明桑
项目需要,开发中需要加载图片,自己要写图片从网上下载的方法,还要写缓存,等等。 在网上找到一个开源项目,smartImageVIew,支持从URL和通讯录中获取图像,可以替代Android标准的ImageView。 特征: 根据URL地址装载图像; 支持装载通讯录中的图像; 支持异步装载; 支持缓存; 这个是作者的项目主页,有使用方法。 http://loopj.com/android-smart-image-view/ 下载作者的jar包导入项目后,在xml中加入控件 代码里找到该控件 SmartImageView myImage = (SmartImageView) this.findViewById 继续阅读 »
2016-07-29 Renfei Yu
一. 概述 Android 自动化单元测试一直困扰着广大开发者,可以说是一种从入门到"放弃"的技术方案,本片文章将从下面几个方面说明我在利用自动化构建工具促进Android自动化测试的经验 Jenkins自动化构建 Gradle Plugin自动构建任务功能 Android Unit Test 测试概述与说明 继续阅读 »
2015-05-01 码农明明桑
近日,我们的应用,在编译的时候不幸的遇到这个错误 Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536 这才让我意识到原来我们的程序中,方法数已经超过了65536。在之前,已经知道了android系统的java虚拟机dalvik在执行java程序时,使用原生类型short来索引dex文件中的方法,因此方法数就呗限制在65536了。之前我一直以为,这个数量已经很大了,不会达到上限,结果今天就达到了。 不过这个东西呢,我们也是很容易的进行解决的,因为,就在去年不久前,google官方提供了多dex 继续阅读 »
2016-08-02 Jamling
目前许多Android App都带有一个底部栏,通过底部栏可以切换Tab,比如微信,QQ都是这种风格。对于像小红点之类的醒目提醒,用得最多的就是BadgeView了,不过,如果底部栏是RadioGroup的话,那么不好意思BadgeView可不支持哦(如果使用BadgeView,RadioGroup就不能愉快地工作了)。那么如何即保留使用RadioGroup又能添加BadgeView的功能呢?请接着阅读本文。 本文阐述的是使用QuickAF的RadioBadgeView来解决RadioButton与BadgeView的冲突。在RadioButton上显示Badge消息提醒,需要将原来的RadioButton替换成RadioBadg 继续阅读 »