当前位置:首页 » 安卓系统 » zxingdemoandroid

zxingdemoandroid

发布时间: 2022-07-14 08:46:22

‘壹’ 在android中使用googlezxing实现二维码

先打开本地下载,复制文件,拷贝到他们的项目中即可。
首先我们打开google的zxing的地址,googledezxing地址(本地下载),打开之后我们会看到界面,将这个文件下载我们本地,下载好之后我们需要复制android文件下的几个类,根据这些类名称在android文件下找到这些类,拷贝到他们的项目中,拷贝之后会有报错,我们需要将android文件下的res中的文件也拷贝到我们的项目中。完成之后我们还要依赖zxing的核心类库,当我们的项目不报错的时候,就可以先实现扫描二维码和生成二维码。

‘贰’ android 二维码扫描得到的文本有什么用

你在度娘上搜索ZXing demo, 第一个csdn的代码下载就是。不大方便直接发连接,度娘对带连接的答案审核太过于厉害。 我做过二维码扫描的模块,直接就是用的ZXing demo,原代码就在里面,超级详细的!二维码可以扫描,它还可以扫描条型码。

‘叁’ android怎么zxing 二维码扫描

第一部分:Zxing的集成
步骤一:下载所需要的Zxing精简版,在Github上搜索Zxing,看到这条记录
进入并下载其jar包:

步骤二:复制到项目中,解压下载的包到ZXingProj/src/com/dtr目录下,复制这个zxing文件夹到项目中,这个时候你会看到有几个红线错误
接着一个个来修改这些红色错误,主要错误包括:导入的R包不是本项目的,存在R.raw和R.id和R.layout的资源找不到。首先把该放进去的资源先放进去,复制libs中的zxing.jar包到项目中,记得右键AddAsLibrary
复制下载的res的layout文件、res的values的ids文件、raw文件、res的drawable-xhdpi文件到项目的对应位置
打开ResultActivity文件:

[java] view plain


public class ResultActivity extends Activity {

private ImageView mResultImage;
private TextView mResultText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);

Bundle extras = getIntent().getExtras();

mResultImage = (ImageView) findViewById(R.id.result_image);
mResultText = (TextView) findViewById(R.id.result_text);

if (null != extras) {
int width = extras.getInt("width");
int height = extras.getInt("height");

LayoutParams lps = new LayoutParams(width, height);
lps.topMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, getResources().getDisplayMetrics());
lps.leftMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
lps.rightMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());

mResultImage.setLayoutParams(lps);

String result = extras.getString("result");
mResultText.setText(result);

Bitmap barcode = null;
byte[] compressedBitmap = extras.getByteArray(DecodeThread.BARCODE_BITMAP);
if (compressedBitmap != null) {
barcode = BitmapFactory.decodeByteArray(compressedBitmap, 0, compressedBitmap.length, null);
// Mutable :
barcode = barcode.(Bitmap.Config.RGB_565, true);
}

mResultImage.setImageBitmap(barcode);
}
}
}

‘肆’ android项目中加入zxing,混淆打包出错,求解决

写在视图xml中的onClick响应出错. 因为写在xml中的onClick是通过反射调用的, proguard认为它们没有在代码中被调用过, 所以将它们从代码中除掉或改名了. 解决方法:
在proguard.cfg中添加以下代码, 就可以防止被配在视图xml中的onClick方法被proguard优化掉
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}123123

jni反调Java方法
这些类或方法同样可能会被proguard认为没有调用过而被除掉, 或都被改名. 这些方法最好统一写在一个类中, 然后这个类不作优化, 或是找出所有jni调用过的类与方法, 在proguard.cfg中配置, 不对它们作优化
其它反射调用的java类与方法
使用反射时一定要注意proguard可能会认为那些方法未被调用过, 会在代码优化过程中将它们改名或除去. 在使用反射的地方一定要在proguard.cfg中配置, 不优化反射调用过的类和方法
最后在proguard优化过后会产生一些文件
mp.txt – 描述.apk文件中所有类文件间的内部结构
mapping.txt – 列出了原始的类,方法和字段名与混淆后代码间的映射。这个文件很重要,当你从release版本中收到一个bug报告时,可以用它来翻译被混淆的代码。
seeds.txt – 列出了未被混淆的类和成员
usage.txt – 列出了从.apk中删除的代码
要注意分析mapping.txt与usage.txt看xml视图中写的onClick响应函数, jni调用到的java类与方法, 反射调用过的类与方法是否被混淆或重命名
-keep class com.badlogic.gdx.backends.Android.**{ *;}
的只是不混淆:这个包下的类(不包括子包里的东西),用到一个第三文的类就要把这个类所在的包,像上面加上
还要注意的是android-support-v4.jar这个包问题,这里加上了对这个jar包的处理
第三方jar的混淆,
-optimizationpasses 5
-dontusemixedcaseclassnames
-
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity // 继承activity,application,service,broadcastReceiver,contentprovider....不进行混淆
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.
-libraryjars /libs/android-support-v4.jar
-libraryjars /libs/gdx-backend-android.jar
-libraryjars /libs/gdx.jar123123
// 这里不对第三方的jar包的提出WARN
-dontwarn com.badlogic.**
-dontwarn android.support`这里写代码片`.v4.**
-dontwarn android.support.v4.view.**12341234
// 这里对第三方jar包的类不进行混淆
-keep class com.badlogic.gdx.backends.android.**{ *;}
-keep class com.badlogic.gdx.**{ *;}
-keep class com.badlogic.gdx.graphics.g2d.**{ *;}
-keep class com.badlogic.gdx.graphics.**{ *;}
-keep class android.support.v4.view.**{ *;}123456123456
// 这里第三方JAR包处理结束
-keepclasseswithmembernames class * { // natvie 方法不混淆
native ;
} 12341234
-keepclasseswithmembers class * {
// 对于所有类,有这个构造函数不进行混淆,主要是为了在layout中的,自定义的view
public (android.content.Context, android.util.AttributeSet);
} 12341234
-keepclasseswithmembers class * {
public (android.content.Context, android.util.AttributeSet, int);
} 123123
-keepclassmembers class * extends android.app.Activity {
// 这个主要是在layout 中写的onclick方法android:onclick="onClick",不进行混淆
public void *(android.view.View);
} 12341234
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
} 12341234
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

‘伍’ Android二维码识别源码,可有多种实现方式

这里简单介绍一下ZXing库。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39码、93码。ZXing是个很经典的条码/二维码识别的开源类库,以前在功能机上,就有开发者使用J2ME运用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力。
下面是ZXing的demo运行,我这里创建了一个二维码,内容是我博客的网址,大伙可以用微信的扫一扫功能,试一下。就可以直接打开我博客。

2、ZXing库主要类
下面给大家介绍一下,ZXing库里面主要的类以及这些类的作用:
CaptureActivity。这个是启动Activity 也就是扫描器。
CaptureActivityHandler 解码处理类,负责调用另外的线程进行解码。
DecodeThread 解码的线程。
com.google.zxing.client.android.camera 包,摄像头控制包。
ViewfinderView 自定义的View,就是我们看见的拍摄时中间的框框了。

3、使用ZXing生成二维码
下面针对二维码生成和解析做个简单介绍,至于详细的使用方法,建议大家还是自己看看源码,使用起来很简单,不过这个开源项目的代码,值得好好看看。首先给出二维码生成的方法:
View Code
上面就是二维码生成的方法接口,如果你只是使用者方法,很简单,只要传入一个URL即可,就像我截图里面一样,传入一个合法的网址即可。或者像现在一些移动APP的推广,把APP下载地址转为二维码,只要扫一下就可以下载相应的APP。这个也是目前比较流行的APP的推广方式。
上面代码做的事情不多,主要是调用ZXing库里面QRCodeWriter().encode的方法对我们传进去的URL进行编码,具体如何编码,这个我这里就不详细说,有兴趣可以看ZXing的源码。文章最后会给出ZXing的源码和例子代码。

4、扫描二维码获取信息
扫描获取二维码信息的工作稍微复杂一些,主要是需要编写Camera的使用,这个跟我们一般使用Camera一样,需要使用Surfaceview作为预览,这一部我这里就不说了,这个应该不是太复杂。对于使用过Camera做预览的朋友,应该是挺简单的事情。获取二维码数据的关键处理是在Camera的自动对焦回调函数哪里,调用ZXing的解码接口。
View Code
这里稍微多说一句,由于解码需要一定时间,所以ZXing的解码调用,都是使用了Handler作为线程通信机制,解码的工作都是放在独立线程里面使用的,如果你直接在主线程解码,恐怕ANR问题是避免不了。
View Code
上面是解码的线程处理不同状态的时候需要注意的地方,我们这里只看获取图像成功的地方,成功获取图片解码的实在DecodeThread里面实现,DecodeThread里面解码成功后,会把数据序列化,然后保存到Bundle里面,我们可以直接通过Bundle的序列化,获取到图片数据。同时会把解码后的结果保存到MSG里面,然后就可以根据实际情况进行处理,例如上面代码,解码成功后,会调用一个处理函数:
View Code
上面就是整个二维码的解码流程,里面因为涉及很多Camera的使用,所以你如果需要使用二维码识别,需要注意一下你的程序需要申请下面的权限,一般的Camera使用以及Camera的自动对焦等。
View Code
5、结语
上面就是生成和识别二维码的关键流程和代码,有兴趣的朋友可以自己查看ZXing的源码,里面有很多图像分析的知识可以学习。具体使用也可以参考我下面给出的Demo。二维码对于现在移动开发来说很是很常用的技术,所以有空可以了解一下,说不定什么时候就用上了。另外,ZXing库除了二维码外,其实对于条形码也是支持的,只是我这里没有介绍。有需要的自己去看看源码即可。
转载

‘陆’ android上二维码的扫描

你在度娘上搜索ZXing demo, 第一个csdn的代码下载就是。不大方便直接发连接,度娘对带连接的答案审核太过于厉害。
我做过二维码扫描的模块,直接就是用的ZXing demo,原代码就在里面,超级详细的!二维码可以扫描,它还可以扫描条型码。
我是直接调用它里面的CaptureActivity,在它finish()时,forResult把扫描的字符串传回来就可以。超好用的。
我就是做安桌开发的,欢迎你继续追问,也谢谢采纳答案。

‘柒’ 如何在android studio 中引入zxing

方法一:Android studio引入了grandle,导入第三方库需要在里面配置。将zxing解压后把Httpzoid目录到你项目的目录下,添加后android studio的项目下会自动出现这个目录,然后进行grandle配置,具体可以去网络搜一下很多。
方法二:导入zxing库的jar包:在libs文件夹和添加的*.jar文件下鼠标单击菜单 add as library

打开App目录下有个build.gradle文件应该项目结构文件,上述的动作只是为了在在文件下添加。其实Android studio本身自带
的库挺多,选择项目单击Open Mole Settings,在Dependencies中,点击右边绿色加号,搜索zxing选择添加文件

dependencies {
compile files('libs/android-support-v13.jar')
compile files('libs/zxing.jar')}

方法三,猥琐点,把工程复制黏贴到自己的项目工程,把工程包名改,哈哈

‘捌’ Android 小黄车扫描二维码用的啥框架

这里简单介绍一下ZXing库。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39码、93码。ZXing是个很经典的条码/二维码识别的开源类库,以前在功能机上,就有开发者使用J2ME运用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力。
下面是ZXing的demo运行,我这里创建了一个二维码,内容是我博客的网址,大伙可以用微信的扫一扫功能,试一下。就可以直接打开我博客。

热点内容
php取文本框值 发布:2025-01-25 05:08:50 浏览:245
怎么查看服务器状态 发布:2025-01-25 05:08:42 浏览:716
win7无法访问xp共享打印机 发布:2025-01-25 05:05:04 浏览:806
编程刷分 发布:2025-01-25 04:55:07 浏览:631
世界服务密码是多少 发布:2025-01-25 04:42:52 浏览:49
专车配置有哪些 发布:2025-01-25 04:42:46 浏览:570
java培训班收费 发布:2025-01-25 04:37:53 浏览:767
密码锁如何密码解锁 发布:2025-01-25 04:25:16 浏览:386
ebay如何上传产品 发布:2025-01-25 04:04:37 浏览:824
java判断是否手机访问权限 发布:2025-01-25 04:02:28 浏览:808