-
2021-09-23 19:18:47
Android Studio生成二维码
第一步 导入依赖
compile 'cn.yipianfengye.android:zxing-library:2.2'
第二步 在清单文件里加权限
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.INTERNET" />
第三步 初始化
1.定义一个类继承Application
2.重写onCreate方法
3.初始化public class App extends Application { @Override public void onCreate() { super.onCreate(); ZXingLibrary.initDisplayOpinion(this); } }
第四步 在清单文件里进行调用

第五步 在MainActivity
1.所对应的布局文件 定义ImageView
2.控件初始化
3.在onCreate里定义一个String字符串String str = "sunzhaojin"; ImageView imageView = findViewById(R.id.img); Bitmap mBitmap = CodeUtils.createImage(str, 400, 400, BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher_background)); imageView.setImageBitmap(mBitmap);
第六步 建一个管理类
public class Manager { private static Manager manager = new Manager(); private Manager() { } public static Manager getInstance() { return manager; } List<Callback> list = new ArrayList<>(); public void register(MainActivity2 callback){ list.add(callback); } public void unregister(Callback callback){ list.add(callback); } public static interface Callback{ } }
第七步 新建一个页面调用
** 在新的页面 要实现管理类的接口 并调用管理类的方法**
Manager.getInstance().register(this);
第七步的全代码如下
public class MainActivity2 extends AppCompatActivity implements Manager.Callback { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); Manager.getInstance().register(this); } @Override public void onPointerCaptureChanged(boolean hasCapture) { } }
更多相关内容 -
Android studio 之Zxing 实现二维码生成和扫描
2019-04-23 22:34:35基于Android studio开发Zxing,实现了二维码的生成了读取.在移植代码时注意查看readme.doc 文件,修改相关配置文件. -
Android studio 二维码扫描
2017-08-26 17:03:55基于ZXing开源代码的 Android studio 二维码项目 -
Android Studio 生成二维码、生成带logo的二维码
2021-10-08 21:01:481.生成二维码: 2.生成logo的二维码: 一、引入依赖 ...implementation files('libs\\zxing.jar') 二、集成工具类 添加二维码工具类EncodingUtils.java ... * 二维码生成工具类 */ public class EncodingUtils1.生成二维码:
2.生成logo的二维码:
一、引入依赖
首先在libs文件目录下放进jar包zxing.jar,要下载zxing.jar就点击链接:下载zxing.jar(记得点击“Cdoe——Download ZIP,可以下载”),再引入依赖,然后sync
implementation
-
Android studio 实现手机扫描二维码功能
2020-08-25 12:13:26主要介绍了Android studio 实现手机扫描二维码功能,需要的朋友可以参考下 -
android studio简单二维码生成。
2018-10-29 13:30:54在导入build.gradle中导入依赖 ...android { compileSdkVersion 27 defaultConfig { applicationId “com.bwie.two_dimension_code” minSdkVersion 15 targetSdkVersion 27 versionCode...在导入build.gradle中导入依赖
apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "com.bwie.two_dimension_code" minSdkVersion 15 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } **configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support') { if (!requested.name.startsWith("multidex")) { details.useVersion '27.1.1' //这里改为你项目使用的版本即可 } } } }** } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.3' **implementation 'com.android.support:design:27.1.1'//加入两个依赖 compile 'cn.yipianfengye.android:zxing-library:1.9'** testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' }
主布局:主要写输入框和搜索框以及生成二维码的框架
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwie.two_dimension_code.MainActivity" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:id="@+id/sou" android:layout_width="300dp" android:layout_height="wrap_content" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="搜索"/> </LinearLayout> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"/> </LinearLayout>
主类功能模块
package com.bwie.two_dimension_code; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import com.uuzuche.lib_zxing.activity.CodeUtils; public class MainActivity extends AppCompatActivity { private EditText sou; private Button btn; private ImageView img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 sou = findViewById(R.id.sou); btn = findViewById(R.id.btn); img = findViewById(R.id.img); //输入内容后点击搜索生成一个二维码 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String s = sou.getText().toString(); if (TextUtils.isEmpty(s)){ return; } Bitmap bitmap = CodeUtils.createImage(s, 400, 400, BitmapFactory.decodeResource(getResources(), R.mipmap.airen)); img.setImageBitmap(bitmap); } }); } }
-
android studio 生成二维码
2018-06-14 19:49:29利用zxing实现二维码的识别和生成。Android利用zxing生成二维码,识别二维码 demo。 -
Androidstudio 扫码、生成二维码
2019-02-25 10:12:03扫码 implementation 'com.journeyapps:zxing-android-embedded:3.5.0' IntentIntegrator integrator = new ...// 设置要扫描的条码类型,ONE_D_CODE_TYPES:一维码,QR_CODE_TYPES-二维码 integ...扫码
implementation 'com.journeyapps:zxing-android-embedded:3.5.0' IntentIntegrator integrator = new IntentIntegrator(MyApplication.activity); // 设置要扫描的条码类型,ONE_D_CODE_TYPES:一维码,QR_CODE_TYPES-二维码 integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES); integrator.setCaptureActivity(ScanActivity.class); //设置打开摄像头的Activity integrator.setPrompt("扫描二维码加好友"); //底部的提示文字,设为""可以置空 integrator.setCameraId(0); //前置或者后置摄像头 integrator.setBeepEnabled(true); //扫描成功的滴声,默认开启 integrator.setBarcodeImageEnabled(true); integrator.initiateScan(); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (data != null){ IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); if (scanResult != null) { String result = scanResult.getContents(); LogUtils.log("code", result); } } } //自定义扫描界面 public class ScanActivity extends BaseActivity { private CaptureManager capture; private DecoratedBarcodeView barcodeScannerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.scan); barcodeScannerView = findViewById(R.id.dbv_scan); capture = new CaptureManager(this, barcodeScannerView); capture.initializeFromIntent(getIntent(), savedInstanceState); capture.decode(); } /** * Override to use a different layout. * * @return the DecoratedBarcodeView */ protected DecoratedBarcodeView initializeContent() { return (DecoratedBarcodeView)findViewById(R.id.zxing_barcode_scanner); } @Override protected void onResume() { super.onResume(); capture.onResume(); } @Override protected void onPause() { super.onPause(); capture.onPause(); } @Override protected void onDestroy() { super.onDestroy(); capture.onDestroy(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); capture.onSaveInstanceState(outState); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) { capture.onRequestPermissionsResult(requestCode, permissions, grantResults); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return barcodeScannerView.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event); } } <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.journeyapps.barcodescanner.DecoratedBarcodeView android:id="@+id/dbv_scan" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:textSize="@dimen/sp20" android:text="@string/friend_refuse"/> </LinearLayout>
二维码
/** * 生成简单二维码 * * @param content 字符串内容 * @param width 二维码宽度 * @param height 二维码高度 * character_set 编码方式(一般使用UTF-8) * error_correction_level 容错率 L:7% M:15% Q:25% H:35% * @param margin 空白边距(二维码与边框的空白区域) * @return BitMap */ public static Bitmap createQRCodeBitmap(String content, ImageView iv_view, Bitmap bm_icon, int width, int height, int margin) { // 字符串内容判空 if (TextUtils.isEmpty(content)) { return null; } // 宽和高>=0 if (width < 0 || height < 0) { return null; } try { /** 1.设置二维码相关配置 */ Hashtable<EncodeHintType, String> hints = new Hashtable<>(); // 字符转码格式设置 hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // 容错率设置 hints.put(EncodeHintType.ERROR_CORRECTION, "H"); // 空白边距设置 hints.put(EncodeHintType.MARGIN, margin + ""); /** 2.将配置参数传入到QRCodeWriter的encode方法生成BitMatrix(位矩阵)对象 */ BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints); bitMatrix = updateBit(bitMatrix, margin); width = bitMatrix.getWidth(); height = bitMatrix.getHeight(); /** 3.创建像素数组,并根据BitMatrix(位矩阵)对象为数组元素赋颜色值 */ int[] pixels = new int[width * height]; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { //bitMatrix.get(x,y)方法返回true是黑色色块,false是白色色块 if (bitMatrix.get(x, y)) { pixels[y * width + x] = 0xff000000;//黑色色块像素设置 } else { pixels[y * width + x] = 0xffffffff;// 白色色块像素设置 } } } /** 4.创建Bitmap对象,根据像素数组设置Bitmap每个像素点的颜色值,并返回Bitmap对象 */ Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels, 0, width, 0, 0, width, height); //5,创建一个方法在二维码上添加一张图片 Bitmap bitmapCode = addLogo(bitmap,bm_icon, 0.2f); if (bitmapCode != null && iv_view != null) { iv_view.setImageBitmap(bitmapCode); return bitmapCode; } iv_view.setImageBitmap(bitmapCode); return bitmap; } catch (WriterException e) { e.printStackTrace(); return null; } } /** * 向二维码中间添加logo图片(图片合成) * * @param srcBitmap 原图片(生成的简单二维码图片) * @param logoBitmap logo图片 * @param logoPercent 百分比 (用于调整logo图片在原图片中的显示大小, 取值范围[0,1] ) * @return */ private static Bitmap addLogo(Bitmap srcBitmap, Bitmap logoBitmap, float logoPercent){ if(srcBitmap == null){ return null; } if(logoBitmap == null){ return srcBitmap; } //传值不合法时使用0.2F if(logoPercent < 0F || logoPercent > 1F){ logoPercent = 0.2F; } /** 1. 获取原图片和Logo图片各自的宽、高值 */ int srcWidth = srcBitmap.getWidth(); int srcHeight = srcBitmap.getHeight(); int logoWidth = logoBitmap.getWidth(); int logoHeight = logoBitmap.getHeight(); /** 2. 计算画布缩放的宽高比 */ float scaleWidth = srcWidth * logoPercent / logoWidth; float scaleHeight = srcHeight * logoPercent / logoHeight; /** 3. 使用Canvas绘制,合成图片 */ Bitmap bitmap = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawBitmap(srcBitmap, 0, 0, null); canvas.scale(scaleWidth, scaleHeight, srcWidth/2, srcHeight/2); canvas.drawBitmap(logoBitmap, srcWidth/2 - logoWidth/2, srcHeight/2 - logoHeight/2, null); return bitmap; } private static BitMatrix updateBit(BitMatrix matrix, int margin){ int tempM = margin*2; int[] rec = matrix.getEnclosingRectangle(); //获取二维码图案的属性 int resWidth = rec[2] + tempM; int resHeight = rec[3] + tempM; BitMatrix resMatrix = new BitMatrix(resWidth, resHeight); // 按照自定义边框生成新的BitMatrix resMatrix.clear(); for(int i= margin; i < resWidth- margin; i++){ //循环,将二维码图案绘制到新的bitMatrix中 for(int j=margin; j < resHeight-margin; j++){ if(matrix.get(i-margin + rec[0], j-margin + rec[1])){ resMatrix.set(i,j); } } } return resMatrix; }
-
Android Studio 扫描识别二维码(包含闪光灯和本地二维码)、生成二维码、生成带logo的二维码
2021-09-15 13:29:11android的报销提示: Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: -
android 生成二维码 中间可以添加logo
2016-10-21 16:01:44android 生成二维码 中间可以添加logo 也可以取消添加logo -
Android Studio Zxing生成二维码
2018-12-09 21:59:31uses-permission android:name="android.permission.CAMERA" /&gt; &gt; &lt;uses-permission android:name="android.permission.VIBRATE" /&... -
androidstudio二维码依赖包
2017-10-08 11:13:08android studio二维码依赖包 可以生成,也可以扫描,有利于大家使用! -
android生成二维码并保存
2013-12-17 11:09:54android开发生成二维码并保存到本地 -
Android studio 生成二维码与扫描二维码
2017-10-08 11:34:08Android studio 生成二维码与扫描二维码点击libzing下载地址MainActivityimport android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v7.app.... -
android studio上使用zxing-android-embedded实现二维码生成和扫描
2017-09-29 00:03:08android studio上使用zxing-android-embedded实现二维码生成和扫描 -
Android如何实现二维码生成与识别
2020-10-25 21:02:37首先将项目结构切换为project,然后将谷歌的jar包复制到libs目录下。如下图 jar包下载地址链接:... Android布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a... -
Android中使用ZXing生成二维码(支持添加Logo图案)
2020-08-31 17:38:24ZXing是谷歌的一个开源库,可以用来生成二维码、扫描二维码。接下来通过本文给大家介绍Android中使用ZXing生成二维码(支持添加Logo图案),需要的朋友参考下 -
android studio 简单二维码扫描识别代码
2021-01-06 16:02:23使用android studio 生成 扫描二维码app,简单粗暴好用 自己白天找了一上午代码也没找到 ,然后用了个github包 写了个简单的 下面上图 首先使用android studio创建一个空白项目,这里不多讲了 不会的小伙伴可以... -
android stdio 生成二维码最简单的例子!!
2016-08-10 09:31:17这是android app生成二维码最简单的方法,里面代码几行实现。 我有些教程,教程里面有如何把zxing库导入到工程,方法很简单。 要是学不会,不会用的话来骂我…… -
android studio zxing 生成和扫描二维码
2020-02-29 19:53:11implementation 'com.journeyapps:zxing-android-embedded:3.6.0' //生成 implementation 'com.google.zxing:javase:3.0.0' MainActivity package wlt.com.hyjj; import android.content.Intent; import a... -
Android studio简单实现二维码功能
2019-12-30 19:33:39二维码依赖 //app implementation ‘com.github.tongchexinfeitao:QRCodeLibrary:1.0’ //根目录 allprojects maven { url ‘https://jitpack.io’ } //EventBus依赖 implementation ‘org.greenrobot:eventbus:... -
玩转Android之二维码生成与识别
2016-05-26 15:29:22二维码,我们也称作QRCode,QR表示quick response即...二维码的使用我主要想分为两部分来给大家介绍,一部分就是二维码的生成,这里的知识点都很简单,还有一部分是二维码的识别,这里稍微麻烦一些,不过细心来做其实 -
安卓实现二维码扫描返回扫描结果,二维码生成,二维码保存到本地
2020-10-14 13:52:34安卓实现二维码扫描返回扫描结果,二维码生成,二维码保存到本地博客地址 https://blog.csdn.net/hongfei568718926/article/details/109071738 -
基于android studio的简单二维码应用
2016-10-01 22:01:30二维码扫描应用,如果出现camera error请进入手机权限管理授权app -
手机APP扫描二维码生成工具
2018-06-22 10:21:12安装此APK程序,可以通过手机扫描各类二维码,将二维码的信息自动解析生成文件,方便查看使用 -
Android利用zxing生成二维码,识别二维码超详细、超简易demo
2018-06-11 09:25:41Android利用zxing生成二维码,识别二维码超详细、超简易demo,解压后用Android studio可直接打开,附教程:https://blog.csdn.net/mountain_hua/article/details/80646089 -
在Android Studio中集成Zxing实现条形码和二维码的扫描
2016-12-27 10:35:28在Android Studio中集成Zxing实现条形码和二维码的扫描 -
Android 二维码生成与解析
2019-11-25 20:18:17Android zxing生成与解析二维码 com.google.zxing:core:3.3.0 可以在Android studio直接搜索下载,也可以导入包。 生成普通的二维码 /** * 生成带logo的二维码,logo默认为二维码的1/5 * * @param text 需要生成... -
android实现扫描网页二维码进行网页登录功能
2021-01-20 09:24:33别纠结这页面咋这么丑,没写样式,说一下我实现的思路哈,首先在数据库中新建一个表用来存储扫码登录信息(id,username,randomnum),这三个分别是id自增长,用户名,随机数——>点击生成二维码,生成随机数,可以用... -
android 根据输入数据生成二维码
2018-11-23 17:57:04自己输入数据自动生成二维码,扫描获取输入的内容,使用ZXing二维库实现
收藏数
3,497
精华内容
1,398