# android-zxingLibrary
**更新日志**
- compile 1.3 2016/08/02 优化扫描API
- compile 1.4 2016/08/03 修复扫描时二维码拉伸问题
- compile 1.5 2016/08/05 更新控制闪光灯API
- compile 1.6 2016/08/08 更新生成带logo二维码时logo不带边距可能存在的问题
- compile 1.7 2016/08/09 修改默认扫描框的大小,适配不同分辨率手机,修改自定义扫描框属性类型
- compile 1.8 2016/08/10 修复解析二维码图片时可能存在的OOM问题
- compile 1.9 2016/09/07 Library库中删除Application,在demo库中的Application执行初始化操作
- compile 2.0 2016/10/12 测试Demo中添加Android M权限处理,代码库添加自定义属性支持小圆点是否展示
- compile 2.1 2016/11/22 修复扫描中的一些bug
**使用说明**
- 可打开默认二维码扫描页面
- 支持对图片Bitmap的扫描功能
- 支持对UI的定制化操作
- 支持对条形码的扫描功能
- 支持生成二维码操作
- 支持控制闪光灯开关
**使用方式:**
- **集成默认的二维码扫描页面**
在具体介绍该扫描库之前我们先看一下其具体的使用方式,看看是不是几行代码就可以集成二维码扫描的功能。
- 在module的build.gradle中执行compile操作
```
compile 'cn.yipianfengye.android:zxing-library:2.1'
```
- 在demo Application中执行初始化操作
```
@Override
public void onCreate() {
super.onCreate();
ZXingLibrary.initDisplayOpinion(this);
}
```
- 在代码中执行打开扫描二维码界面操作
```
/**
* 打开默认二维码扫描界面
*/
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}
});
```
这里的REQUEST_CODE是我们定义的int型常量。
- 在Activity的onActivityResult方法中接收扫描结果
```
/**
* 处理二维码扫描结果
*/
if (requestCode == REQUEST_CODE) {
//处理扫描结果(在界面上显示)
if (null != data) {
Bundle bundle = data.getExtras();
if (bundle == null) {
return;
}
if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
String result = bundle.getString(CodeUtils.RESULT_STRING);
Toast.makeText(this, "解析结果:" + result, Toast.LENGTH_LONG).show();
} else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {
Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();
}
}
}
```
怎么样是不是很简单?下面我们可以来看一下具体的执行效果:
**执行效果:**
![image](https://github.com/yipianfengye/android-zxingLibrary/blob/master/images/ezgif.com-video-to-gif%20(2)%2015.33.08.gif)
但是这样的话是不是太简单了,如果我想选择图片解析呢?别急,对二维码图片的解析也是支持的
- **集成对二维码图片的解析功能**
- 调用系统API打开图库
```
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent, REQUEST_IMAGE);
```
- 在Activity的onActivityResult方法中获取用户选中的图片并调用二维码图片解析API
```
if (requestCode == REQUEST_IMAGE) {
if (data != null) {
Uri uri = data.getData();
ContentResolver cr = getContentResolver();
try {
Bitmap mBitmap = MediaStore.Images.Media.getBitmap(cr, uri);//显得到bitmap图片
CodeUtils.analyzeBitmap(mBitmap, new CodeUtils.AnalyzeCallback() {
@Override
public void onAnalyzeSuccess(Bitmap mBitmap, String result) {
Toast.makeText(MainActivity.this, "解析结果:" + result, Toast.LENGTH_LONG).show();
}
@Override
public void onAnalyzeFailed() {
Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();
}
});
if (mBitmap != null) {
mBitmap.recycle();
}
} catch (Exception e) {
e.printStackTrace();
}
}
```
**执行效果**
![image](http://img.blog.csdn.net/20160727170831543)
有了默认的二维码扫描界面,也有了对二维码图片的解析,可能有的同学会说如果我想定制化显示UI怎么办呢?没关系也支持滴。
- **定制化显示扫描UI**
由于我们的扫描组件是通过Fragment实现的,所以能够很轻松的实现扫描UI的定制化。
- 在新的Activity中定义Layout布局文件
```
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_second"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/second_button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="10dp"
android:layout_gravity="bottom|center_horizontal"
/>
<FrameLayout
android:id="@+id/fl_my_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
></FrameLayout>
</FrameLayout>
```
启动id为fl_my_container的FrameLayout就是我们需要替换的扫描组件,也就是说我们会将我们定义的扫描Fragment替换到id为fl_my_container的FrameLayout的位置。而上面的button是我们添加的一个额外的控件,在这里你可以添加任意的控件,各种UI效果等。具体可以看下面在Activity的初始化过程。
- 在Activity中执行Fragment的初始化操作
```
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
/**
* 执行扫面Fragment的初始化操作
*/
CaptureFragment captureFragment = new CaptureFragment();
// 为二维码扫描界面设置定制化界面
CodeUtils.setFragmentArgs(captureFragment, R.layout.my_camera);
captureFragment.setAnalyzeCallback(analyzeCallback);
/**
* 替换我们的扫描控件
*/ getSupportFragmentManager().beginTransaction().replace(R.id.fl_my_container, captureFragment).commit();
}
```
其中analyzeCallback是我们定义的扫描回调函数,其具体的定义:
```
/**
* 二维码解析回调函数
*/
CodeUtils.AnalyzeCallback analyzeCallback = new CodeUtils.AnalyzeCallback() {
@Override
public void onAnalyzeSuccess(Bitmap mBitmap, String result) {
Intent resultIntent = new Intent();
Bundle bundle = new Bundle();
bundle.putInt(CodeUtils.RESULT_TYPE, CodeUtils.RESULT_SUCCESS);
bundle.putString(CodeUtils.RESULT_STRING, result);
resultIntent.putExtras(bundle);
SecondActivity.this.setResult(RESULT_OK, resultIntent);
SecondActivity.this.finish();
}
@Override
public void onAnalyzeFailed() {
Intent resultIntent = new Intent();
Bundle bundle = new Bundle();
bundle.putInt(Code
没有合适的资源?快使用搜索试试~ 我知道了~
本科毕业设计-Android.zip
共135个文件
java:49个
xml:39个
png:28个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 81 浏览量
2023-10-05
01:22:19
上传
评论
收藏 4.33MB ZIP 举报
温馨提示
本科毕业设计
资源推荐
资源详情
资源评论
收起资源包目录
本科毕业设计-Android.zip (135个子文件)
gradlew.bat 2KB
ezgif.com-video-to-gif (2) 15.33.08.gif 1.79MB
ezgif.com-video-to-gif (3) 15.33.08.gif 1.76MB
ezgif.com-video-to-gif (5).gif 461KB
.gitignore 342B
.gitignore 46B
.gitignore 46B
build.gradle 1KB
build.gradle 1KB
build.gradle 498B
settings.gradle 29B
gradlew 5KB
gradle-wrapper.jar 52KB
BluetoothChatService.java 18KB
ChatActivity.java 13KB
CameraManager.java 12KB
CameraConfigurationManager.java 10KB
ViewfinderView.java 9KB
ScanActivity.java 9KB
CodeUtils.java 8KB
CaptureFragment.java 8KB
DeviceListActivity.java 7KB
Intents.java 7KB
Vegetible_Search.java 5KB
CaptureActivityHandler.java 5KB
FlashlightManager.java 5KB
ImageUtil.java 5KB
PlanarYUVLuminanceSource.java 4KB
DecodeFormatManager.java 4KB
DecodeHandler.java 4KB
WifiAdmin.java 4KB
WifiActivity.java 3KB
ThreeActivity.java 3KB
ChatMsgViewAdapter.java 3KB
MainActivity.java 3KB
DecodeThread.java 3KB
SecondActivity.java 3KB
FruitAdapter.java 3KB
InactivityTimer.java 2KB
PreviewCallback.java 2KB
MsgActivity.java 2KB
Main2Activity.java 2KB
MsgAdapter.java 2KB
CaptureActivity.java 2KB
AutoFocusCallback.java 2KB
EncodingHandler.java 1KB
FinishListener.java 1KB
Constants.java 1KB
BitmapLuminanceSource.java 1KB
ViewfinderResultPointCallback.java 1KB
ChatMsgEntity.java 1KB
DisplayUtil.java 1004B
ZApplication.java 859B
ZXingLibrary.java 784B
ExampleInstrumentedTest.java 762B
ExampleInstrumentedTest.java 751B
BaseActivity.java 542B
Msg.java 455B
ExampleUnitTest.java 407B
ExampleUnitTest.java 399B
Fruit.java 386B
MApplication.java 339B
README.md 13KB
beep.ogg 6KB
my_face.png 64KB
pineapple_pic.png 10KB
ic_launcher.png 10KB
grape_pic.png 8KB
ic_launcher.png 8KB
strawberry_pic.png 7KB
banana_pic.png 7KB
apple_pic.png 7KB
watermelon_pic.png 7KB
cherry_pic.png 7KB
orange_pic.png 6KB
pear_pic.png 6KB
mango_pic.png 6KB
ic_launcher.png 5KB
chatfrom_bg_normal.9.png 4KB
ic_launcher.png 3KB
chatfrom_bg_pressed.9.png 3KB
scan_image.png 3KB
chatfrom_bg_focused.9.png 3KB
chatto_bg_normal.9.png 3KB
chatto_bg_pressed.9.png 3KB
message_left.9.png 2KB
chatto_bg_focused.9.png 2KB
ic_launcher.png 2KB
scan_light.png 2KB
message_right.9.png 2KB
chat_bottom_send_normal.png 441B
chat_bottom_send_pressed.png 425B
proguard-rules.pro 656B
proguard-rules.pro 656B
gradle.properties 860B
gradle-wrapper.properties 233B
activity_second.xml 4KB
activity_main2.xml 3KB
activity_wifi.xml 2KB
chatting_item_msg_text_right.xml 2KB
共 135 条
- 1
- 2
资源评论
学术菜鸟小晨
- 粉丝: 1w+
- 资源: 4940
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Pytorch-pytorch深度学习教程之深度残差网络.zip
- Pytorch-pytorch深度学习教程之循环神经网络.zip
- Pytorch-pytorch深度学习教程之逻辑回归.zip
- Pytorch-pytorch深度学习教程之双向循环网络.zip
- Pytorch-pytorch深度学习教程之卷积神经网络.zip
- Pytorch-pytorch深度学习教程之前馈神经网络.zip
- Pytorch-pytorch深度学习教程之线性回归.zip
- Pytorch-pytorch深度学习教程之基本操作.zip
- 基于QT的地图可视化桌面系统后台数据库为MySQL5.7源码.zip
- 基于simulink的PLL锁相环系统仿真【包括模型,文档,参考文献,操作步骤】
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功