安卓开发的小技巧
安卓开发的小技巧
2017-4-22 小B
又见面啦!欢迎来到安卓开发技巧系列的第三篇博文。
我们很高兴至今为止很多人已经发现了这个系列的有趣之处,很感谢你们通过评论和电子邮件的方式向我们表达你们的支持!
说给第一次来这里的朋友吧,很久以前我们(安卓团队)就已经在内部互相分享每周学习到的小技巧了。
最近,我们开始在博客上与其余的开发团队分享我们的小技巧。
你可以在 这里 和 这里 找到我们较早以前的两篇博文。
可能最近某个星期我们将分享最早的几篇小技巧文章来博君一笑!好吧,言归正传,下面就是这周的小技巧。
技巧 1
如果你正在使用 ZXing 库中的 QRCodeWriter 来生成 qr 码,那么(用这种方法)生成大尺寸图像是相当慢的。实际上,你可以传递一个 0×0 的尺寸,这时将返回一个尽可能最小尺寸(每块是1像素)的 BitMatrix。
然后你可以把这个 matrix 写进 BitmapDrawable,并将其设置为某些视图的背景。
不过,你需要首先确保在 drawable 中调用了
setFilterBitmap(false)
这样(图像)在缩放时不会变得模糊。
BitMatrix matrix = new QRCodeWriter().encode("content here", BarcodeFormat.QR_CODE, 0, 0);
int height = matrix.getHeight();
int width = matrix.getWidth();
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);
for (int x = 0; x < width; x++) {
for (int y = 0; y < width; y++) {
bmp.setPixel(x, y, matrix.get(x, y) ? Color.BLACK : Color.TRANSPARENT);
}
}
BitmapDrawable qrCodeDrawable = new BitmapDrawable(getResources(), bmp);
qrCodeDrawable.setFilterBitmap(false);
imgQrCode.setBackground(qrCodeDrawable);
我使用 Bitmap.Config.ARGB_4444,因为我需要将 QR 码的背景设置成透明。如果你希望是黑白色的,可以使用 Bitmap.Config.RGB_565。
同时,如果你希望操作安全,你可以改变 QR 码的创建方式为
BitMatrix matrix = new QRCodeWriter().encode("content here",BarcodeFormat.QR_CODE, 10, 10)
以防类库在未来不再接收 0×0 的尺寸,因为我相信一个 QR 码不可能小于1.0×1.0。
– 技巧贡献者, James Sun
技巧 2
下次你需要使用“adb shell”时可以键入“adb hell”试试。相信我。
– 技巧贡献者, Tyler Romeo
技巧 3
TextUtils.concat()
将会返回给你一个连接输入字符串的字符序列,并且保留了它们之间的间距。
– 技巧贡献者, Walker Hannan
技巧 4
“叶子”视图在触摸事件中享有优先权,但是“根”视图在拦截触摸事件时享有优先权,所以当你需要的是有子视图正在使用的触摸事件时,换成拦截事件吧。
同时,如果这个子视图正在调用
setRequestDisallowInterceptTouchEvent
但是你并不希望它起作用,那么除了覆盖它不要做任何事。
– 技巧贡献者, Frank Doyle
技巧 5
你可以使用 SqliteDatabase 的 beginTransaction() 和 endTransaction() 来完成批量操作,但是你必须确保调用了
setTransactionSuccessful()
否则一旦调用endTransaction(),你所做的改变将会回滚。
– 技巧贡献者, Walker Hannan
技巧 6
如果你正在做测试,你可能应该谨慎使用静态方法!为什么?在众多其他理由中,较恰当的一个理由是安卓框架提供的方法不能在测试中使用,因为他们是静态方法所以你不能将它们模拟出来。
– 技巧贡献者, Frank Doyle
技巧 7
如果你正在做测试,你应该试试 Mockito。它会帮助你将复杂对象依赖替换成超级简单的替换物。
相关阅读推荐
-
数据显示仍有16%的Android手机运行的是 Android KitKat
2017-9-8 小B
-
安卓开发的小技巧
2017-4-22
最新资讯
Android文章推荐阅读
-
数据显示仍有16%的Android手机运行的是 Android KitKat
2017-9-8 小B
-
安卓开发的小技巧
2017-4-22
文章排行
-
-
甲骨文正式宣布将 Java EE 移交给 Eclipse 基金会
2017-9-15 小B
-
装逼必备:大型分布式网站术语分析
2017-9-5 小B
-
每个JavaScript开发者都该懂的Unicode
2017-8-30 小B
-
为什么我们选择使用 React 而不是 Angular 构建新 UI
2017-8-18 小B
-
没那么难,谈CSS的设计模式
2017-8-12 小B
-
JavaScript 从0自定义封装企业插件原来这么简单
2017-7-28 小B
-
-
-
甲骨文正式宣布将 Java EE 移交给 Eclipse 基金会
2017-9-15 小B
-
深度学习入门
2017-9-14 小B
-
数据显示仍有16%的Android手机运行的是 Android KitKat
2017-9-8 小B
-
安卓开发的小技巧
2017-4-22
-
中国和印度双驾马车拉动亚太地区应用生态超过西方
-
2017年最好用的Android渗透工具合集
-
应用程序进入开发阶段后,您需要执行哪些步骤
-