zoukankan      html  css  js  c++  java
  • 框架学习八:二维码(Zxing)

    本文转自夏神:http://blog.csdn.net/xiaanming/article/details/10163203

    一、用什么

    二维码扫描用的google的开源框架Zxing。

    二、下载

    地址:http://code.google.com/p/zxing/

    http://download.csdn.net/download/xiaanming/5990219

    三、怎么用

    记得要加相机权限。

    1、拷贝三个包到自己项目中,并将相关资源引入:com.mining.app.zxing.camera,com.mining.app.zxing.decoding,com.mining.app.zxing.view。

    2、导入Zxing.jar包。

    3、引入类:MipcaActivityCapture。这个activity主要处理扫描界面的类,比如扫描成功有声音和震动等等,主要关注里面的handleDecode(Result result, Bitmap barcode)。扫描完成之后将扫描到的结果和二维码的bitmap当作参数传递到handleDecode(Result result, Bitmap barcode),只需在这儿写出相对应的处理代码即可。

    4、自定义效果

    1)更改扫描框的大小:在CameraManager类里的getFramingRect()。我自己更改后的一个:

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. public Rect getFramingRect() {  
    2.     Point screenResolution = configManager.getScreenResolution();  
    3.     if (framingRect == null) {  
    4.       if (camera == null) {  
    5.         return null;  
    6.       }  
    7.       int width = screenResolution.x;  
    8.         
    9.       int height = screenResolution.y * 1 / 2;  
    10.         
    11.       int leftOffset = (screenResolution.x - width) / 2;  
    12.       int topOffset = (screenResolution.y - height) / 2;  
    13.       framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height);  
    14.       Log.d(TAG, "Calculated framing rect: " + framingRect);  
    15.     }  
    16.     return framingRect;  
    17. }  

    2)更改扫描框的样式:在ViewFinderView类中修改。

    更改扫描框大小后,更改扫描框下方的文字位置,使得其居中显示:

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. paint.setTextAlign(Align.CENTER);  
    2. canvas.drawText(getResources().getString(R.string.scan_text), width/2, (float) (frame.bottom + (float)TEXT_PADDING_TOP *density), paint);  
    四、需要扫描本地图片

    本机扫描本机图片,参考夏神:http://blog.csdn.net/xiaanming/article/details/14450809

    五、遇到的问题

    raw文件夹提交不了svn,错误提示是:

    我怎么解决的:删了raw文件夹,然后再重新创建,再将该文件夹下东西拷贝进来,再次提交svn。

  • 相关阅读:
    EJB Timer Service is not available. Timers for application with id 95795415990861824 will not be deleted
    MySql数据基本操作sql语句
    python 将字符串转换成字典dict的各种方式总结
    Go语言笔记:struct结构遍历
    golang实现base64编解码
    map赋值前要先初始化:assignment to entry in nil map
    python中 .write 无法向文件写入内容
    python 守护进程
    go语言解析 map[string]interface{} 数据格式
    python虚拟环境--virtualenv
  • 原文地址:https://www.cnblogs.com/likeju/p/4826447.html
Copyright © 2011-2022 走看看