Android 扫描二维码demo

demo下载链接:https://download.csdn.net/download/meixi_android/10779714

zxing依赖:

compile 'cn.yipianfengye.android:zxing-library:2.2'

扫描类:

 

/*** 作者:created by meixi* 邮箱:13164716840@163.com* 日期:2018/9/17 08*/
public class TwoActivity extends AppCompatActivity {private CaptureFragment captureFragment;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second);captureFragment = new CaptureFragment();// 为二维码扫描界面设置定制化界面CodeUtils.setFragmentArgs(captureFragment, R.layout.my_camera);captureFragment.setAnalyzeCallback(analyzeCallback);getSupportFragmentManager().beginTransaction().replace(R.id.fl_my_container, captureFragment).commit();}/*** 二维码解析回调函数*/CodeUtils.AnalyzeCallback analyzeCallback = new CodeUtils.AnalyzeCallback() {@Overridepublic 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);TwoActivity.this.setResult(RESULT_OK, resultIntent);TwoActivity.this.finish();}@Overridepublic void onAnalyzeFailed() {Intent resultIntent = new Intent();Bundle bundle = new Bundle();bundle.putInt(CodeUtils.RESULT_TYPE, CodeUtils.RESULT_FAILED);bundle.putString(CodeUtils.RESULT_STRING, "");resultIntent.putExtras(bundle);TwoActivity.this.setResult(RESULT_OK, resultIntent);TwoActivity.this.finish();}};
}

mainactivity跳转到扫描类以及扫描结果回调、

public static final int REQUEST_CODE = 111;

 默认扫描类

Intent intent = new Intent(getApplication(), CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);

自定义扫描类

Intent intent = new Intent(MainActivity.this, TwoActivity.class);
startActivityForResult(intent, REQUEST_CODE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {/*** 处理二维码扫描结果*/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();}}}}

 

 

 

1、文件activity_second.xml

<?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"><FrameLayoutandroid:id="@+id/fl_my_container"android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="visible"></FrameLayout></FrameLayout>

2、文件my_camera.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="fill_parent"android:layout_height="fill_parent" ><SurfaceViewandroid:id="@+id/preview_view"android:layout_width="wrap_content"android:layout_height="wrap_content"/><com.uuzuche.lib_zxing.view.ViewfinderViewandroid:id="@+id/viewfinder_view"android:layout_width="wrap_content"android:layout_height="wrap_content"app:inner_width="200dp"app:inner_height="200dp"app:inner_margintop="150dp"app:inner_corner_color="@color/scan_corner_color"app:inner_corner_length="30dp"app:inner_corner_width="5dp"app:inner_scan_bitmap="@drawable/scan_image"app:inner_scan_speed="10"app:inner_scan_iscircle="false"/></FrameLayout>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

neditor 自定义工具栏配置

neditor是ueditor的亚种。我已经实现了vueneditor的封装&#xff0c;下面记录一下常用工具栏的配置。 1、配置方法 实例化编辑器的时候传入 toolbars 参数 2、参数列表 名称描述anchor锚点undo撤销redo重做bold加粗indent首行缩进snapscreen截图italic斜体underline下划线st…

前端学习(2666):完成vue3.0的todolist编辑

1点击编辑 2编辑逻辑 3进入编辑状态

课后作业-团队编程项目总结

成员&#xff1a;王志昂&#xff08;组长&#xff09; 郑 月 李古宇 孙晨旭 鞠牧孜 程冠菲 项目名称&#xff1a;吃货之家 早在商朝末年&#xff0c;太公望(别名:姜太公&#xff0c;姜子牙)在营丘之战时所创制的太公望红焖鸡&#xff0c;在姜太公建立齐国后&#xff0c;红焖鸡(…

Android Notification 手机系统横幅弹出提示框调用,横幅通知,RemoteViews使用实例

直接上代码 &#xff1a;bundle是极光推送的bundle Override public void onReceive(Context context, Intent intent) {try {Bundle bundle intent.getExtras(); 。。。。。。 发送横幅通知方法&#xff1a; try {RemoteViews customView new RemoteViews(context.getPac…

前端学习(2667):退出编辑状态

1逻辑实现 2加上myinput 3判断myinput 调整元素 4

《构建之法》阅读笔记01

本周阅读了《构建之法》的第一章《概论》以及第四章《两人合作》。 《概论》旨在说明软件工程的概念。 作为一个程序员&#xff0c;几乎没有谁不知道“程序算法数据结构”这句名言的&#xff0c;而这本书中&#xff0c;则又提出了另一个概念“软件程序软件工程”&#xff0c;“…

Android 帧动画,加载动画,AnimationDrawable,仿京东加载动画

1、创建drawable文件ring_animation.xml <?xml version"1.0" encoding"utf-8"?> <animation-list xmlns:android"http://schemas.android.com/apk/res/android"><item android:drawable"mipmap/windmill_1"android:…

前端学习(2668):删除功能

1定义删除 2删除方法 3删除演示

mac 通过 homebrew 安装mongodb

通过homebrew安装mongodb非常省事&#xff0c;但是如果没有科学上网&#xff0c;可能比较慢&#xff0c;下面是官方安装教程链接&#xff1a; https://github.com/mongodb/homebrew-brew 主要步骤 1、brew tap mongodb/brew 2、brew install mongodb-community 3、启动 br…

SICK TiM561激光雷达的使用

TIM系列激光扫描传感器原理&#xff1a; 激光发射器发出激光脉冲&#xff0c;当激光碰到物体后&#xff0c;部分激光反射回激光接收器。通过计算发射/接收脉冲时间差&#xff0c;可以计算出距离值。激光扫描器连续不停的发射激光脉冲&#xff0c;由旋转的光学机构将激光脉冲按一…

简易listview与adapter实现列表,ArrayAdapter和BaseAdapter

item.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:…

Netcdf文件导出基本代码示例

需求&#xff1a;从一个nc文件中取出我想要的变量&#xff0c;导出到另外一个nc文件。 下面是基本代码&#xff1a; GetMapping("/export") public String varExport(ModelAttribute FileSaveVars params ) throws IOException, InvalidRangeException { // 1…

记一次MySQL手工注入

本来想找个装安全狗的站试下绕过&#xff0c;safe dog没找到&#xff0c;但随便一搜搜到一个小站有SQLi&#xff0c;正好借此机会复习下手工注入&#xff08;新版Firefox我吐槽一下&#xff0c;hackbar这么好用的工具&#xff0c;说阉割就阉割&#xff0c;哎&#xff09; 小站没…

Netcdf对数据进行裁剪

对三维数据进行裁剪 List<Range> tyxRanges new ArrayList<>(); tyxRanges.add(new Range(null,0,12)); tyxRanges.add(new Range(null,0,12)); tyxRanges.add(new Range(null,0,12)); Array varData varObject.read(tyxRanges); ncWrite.write(varVar, varData…

Android: 解决动画完成后位置恢复到初始位置的问题

今天在使用TranslateAnimation位移一个LinearLayout时&#xff0c;发现动画完成后又会自动回到初始的状态&#xff0c;设置了fillAfter也不太管用。 仔细研究了一下&#xff0c;发现&#xff1a; 这种现象很正常&#xff0c;因为TranslateAnimation只负责实现位移动画效果&…

Netcdf中时间的格式化

需求&#xff1a;获取到的时间格式为minutes since 2018-01-01 00:30:00 我想要的格式为2018-01-01 00:30:00 java代码如下 // 4 设置时间变量 Variable timeObject ncFile.findVariable("time"); String timeAt timeObject.getUnitsString(); String regex &q…