前几天拿老婆充话费送的天语小黄蜂T619来(Android2.3.5版的OS)测试《IP摄像头》,发现图像出不来,跟踪程序后发现是在startPreview时throw出startPreview failed错误,可在Android4.0以上版本没有,图像正常。谷歌了一番,网上也有很多类似的,说是Android2.3版本时要对SurfaceHolder调用setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);才行。自己弄了两天还是解决不了,还是会出现startPreview failed错误而没有图像。今晚把setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);调用放在了Activity的onCreate中,发现问题立马解决了!

部分代码如下:

surfaceView = (SurfaceView) findViewById(R.id.preview_view);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
if(Build.VERSION.SDK_INT < 11)
	surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

这个语句在API level 11时被标注为了deprecated,所以加了一个判断,如果OS版本小于11才调用。
增加后《IP摄像头》在如此低端的大黄蜂上也跑起来了!如下图:

IMG_20140421_204719

最后发现《条码制作器》的摄像头扫描也有这个问题,添加上述代码后问题完美解决,在小黄蜂上也能扫条码了!两个APP将在下次更新中解决这个BUGS

最终还是在条码制作器中加入了摄像头扫描条码的功能,只是作为一个补充,功能重点还是在制作条码方面。采用zxing 2.3.0版的库实现编解码功能,摄像头扫描部分大部分是从zxing舶来的代码,并做了一些优化,比如竖屏支持。感觉制作好条形码比较麻烦,因为有些类型的条形码对输入字符有要求,优化了一下输入框,使之可以提示那些字符可以接受。对于EAN8,EAN13和UPC-A的条形码来说,最后一位是不能随便输的,不然制作好了之后解码不了,这是校验位,好吧,还是把这工作留给条码制作器了,请参见《EAN8,EAN13和UPC-A的校验位计算》

条码制作器6.2版的变化
1. 改进架构,条码制作后可以随意更改颜色等
2. 增加通过摄像头扫描条码功能,支持前置摄像头、闪光灯
3. 支持在条码底部添加信息
4. 支持修改背景颜色
5. 修复部分生成的条码码无法解码
6. 图像生成算法优化,内存优化
7. 修复制作后不能立即在图库显示
8. 新的APP图标
9. 二维码错误修正等级默认为L
10.自动为EAN8,EAN13,UPC-A条码增加校验位,防止生成的条码无法解码
11.新增Aztec、DataMatrix格式的条码编解码
12.优化条形码输入框,更加易于使用
13.支持通过摄像头扫描PDF 417格式二维码

下载

Google Play  从应用汇下载

条码制作器

条码制作器

条码制作器是一个方便的工具,帮助您创建QR码或条形码图像。你可以用它从联系人创建QR码,书签,剪贴板和文字。您已经创建后,你可以与各位朋友分享QR码或条形码图像。
BarMaker支持以下格式:
QR码
Code-39
Code-128
EAN-8
EAN-13
ITF
UPC-A

新版变化
1. 可以对‘我的条形码’保存的项目进行重命名
2. 兼容性优化
3. 优化性能
4. 修复其它BUGS

下载

Google Play  从应用汇下载

条码制作器

条码制作器

条码制作器生成的二维码

条码制作器生成的二维码

条码制作器解码图像

条码制作器解码图像