Android studio 实现生成二维码和扫描二维码

这篇具有很好参考价值的文章主要介绍了Android studio 实现生成二维码和扫描二维码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果图
Android studio 实现生成二维码和扫描二维码,android studio,android,ide

Android studio 实现生成二维码和扫描二维码,android studio,android,ide

build.gradle(:app)添加依赖

dependencies {
    implementation 'com.google.zxing:core:3.3.3'
    implementation 'com.journeyapps:zxing-android-embedded:3.6.0'
    implementation 'com.google.zxing:javase:3.0.0'
}

Manifests.xml

	<uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    >

    <ImageView
        android:id="@+id/qr_code_image"
        android:layout_width="200dp"
        android:layout_height="200dp" />
    <EditText
        android:id="@+id/creat_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="请输入想要生成二维码的文字"
        android:layout_marginTop="20dp"
        android:textSize="20dp"/>
    <Button
        android:id="@+id/creat_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="生成二维码"
        android:layout_marginTop="20dp"/>
    <Button
        android:id="@+id/scan_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="扫描二维码"
        android:layout_marginTop="20dp"/>
</LinearLayout>

MainActivity

import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.journeyapps.barcodescanner.BarcodeEncoder;

/**
 * 实现生成二维码和扫描二维码的功能
 */
public class MainActivity extends AppCompatActivity {

    private ImageView qrCodeImageView;
    private Button scanButton;
    private Button creatButton;
    private EditText creatText;

    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        qrCodeImageView = findViewById(R.id.qr_code_image);
        scanButton = findViewById(R.id.scan_button);
        creatButton = findViewById(R.id.creat_button);
        creatText = findViewById(R.id.creat_text);

        // 生成二维码
        creatButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                generateQRCode(creatText.getText().toString());
            }
        });


        // 扫描二维码
        scanButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, ScanActivity.class);
                startActivity(intent);            }
        });
    }

    private void generateQRCode(String text) {
       MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
        try {

            //使用 multiFormatWriter.encode() 函数将文本 text 编码为一个二维码的 BitMatrix 对象
            BitMatrix bitMatrix = multiFormatWriter.encode(text, BarcodeFormat.QR_CODE, 200, 200);
            BarcodeEncoder barcodeEncoder = new BarcodeEncoder();

           //使用 BarcodeEncoder 类的 createBitmap() 函数将 BitMatrix 对象转换为一个 Bitmap 对象
            Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);

            //使用 qrCodeImageView.setImageBitmap() 方法将生成的二维码图像显示在 qrCodeImageView 这个 ImageView 上
            qrCodeImageView.setImageBitmap(bitmap);
        } catch (WriterException e) {
            e.printStackTrace();
        }
    }
}

ScanActivity文章来源地址https://www.toymoban.com/news/detail-694756.html

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.google.zxing.Result;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;

/**
 * 创建一个新的Activity用于扫描二维码,在该Activity中,使用ZXing提供的库来实现二维码的扫描功能
 */
public class ScanActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 初始化二维码扫描
        //创建了一个新的IntentIntegrator对象,并传入当前上下文(this)作为参数。IntentIntegrator是一个用于集成扫描仪应用程序的类
        IntentIntegrator intentIntegrator = new IntentIntegrator(this);

        //设置了IntentIntegrator对象期望的条形码格式为QR码。
        //通过调用setDesiredBarcodeFormats()方法并传入IntentIntegrator.QR_CODE,表示只扫描QR码格式的条形码
        intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE);

        //将提示信息设置为"Scan a QR Code"
        intentIntegrator.setPrompt("Scan a QR Code");

        //通过调用setCameraId()方法并传入0,表示使用默认的摄像头设备进行扫描
        intentIntegrator.setCameraId(0);

        //通过调用setBeepEnabled()方法并传入false,表示在扫描过程中不发出蜂鸣声音效
        intentIntegrator.setBeepEnabled(false);

        //通过调用setOrientationLocked()方法并传入true,表示在扫描过程中保持设备竖直方向不变
        intentIntegrator.setOrientationLocked(true);

        //通过调用initiateScan()方法,IntentIntegrator对象将启动扫描仪应用程序并等待扫描结果
        intentIntegrator.initiateScan();

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if (result != null && result.getContents() != null) {
            String scannedText = result.getContents();
            Toast.makeText(this, "扫描结果: " + scannedText, Toast.LENGTH_SHORT).show();
            // 在这里处理扫描到的二维码内容
        }
        finish();
    }
}

到了这里,关于Android studio 实现生成二维码和扫描二维码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于java服务端实现二维码扫描

    在Java中,可以使用第三方库来识别二维码内容。一个常用的库是ZXing(Zebra Crossing),它提供了强大的二维码处理功能。 首先,确保已将ZXing库添加到项目中。可以手动下载ZXing JAR文件,也可以使用构建工具(如Maven或Gradle)来管理依赖。 下面是使用ZXing库识别二维码内容的示

    2024年02月08日
    浏览(24)
  • UNI-APP实现扫描二维码

    前言:在物联网的应用中,扫描功能是一种很常用的功能,这篇文章将教你怎么通过UNI-APP实现扫描二维码 找到扫码功能的API UNI-APP已经有了扫码功能的API了,通过API可以非常简单的实现扫码功能 UNI-APP官网 查看API 有API可以方便我们进行开发,所以,会看API也是程序员的必备

    2024年02月13日
    浏览(21)
  • 微信公众号开发—扫描二维码实现登录方案

    😊 @ 作者: 一恍过去 💖 @ 主页: https://blog.csdn.net/zhuocailing3390 🎊 @ 社区: Java技术栈交流 🎉 @ 主题: 微信公众号开发—扫描二维码实现登录方案 ⏱️ @ 创作时间: 2022年12月21日 1、调用微信公众号接口,需要实现获取 AccessToken ,参考《获取AccessToken接口调用凭据》 2、在

    2024年02月14日
    浏览(36)
  • 小程序调用扫码接口,实现扫描二维码

    小程序实现扫描二维码,需要调用微信扫码的api,如下: wxml文件代码如下: js文件代码如下: 注意: success函数回调成功后的res值 res.result 所扫码的内容 res.scanType 所扫码的类型 res.charSet 所扫码的字符集 res.path 当所扫的码为当前小程序二维码时,会返回此字段,内容为二维码携带

    2024年02月04日
    浏览(28)
  • npstion实现通过手机扫描二维码向电脑录入信息

    今天介绍大家如何使用手机扫描二维实现Excel表格自动录入数据,我们用到的工具是“NPS二维码服务器”,这是一款可以实现内网穿透的数据库交互程序,使用是完全免费的。通过它我们是可以不用写任何程序代码,就可以实现手机扫描自动上传数据到自己的电脑。也可以通

    2024年02月09日
    浏览(38)
  • uniapp写微信小程序实现二维码条形码扫描识别

    1.最重要的就是一个函数uni.scanCode() 下边是我的代码可以直接使用 上述代码就直接实现了扫描功能很简单记得定义下扫描结果!有啥问题随时@我

    2024年04月09日
    浏览(40)
  • 【微信小程序】使用 wx.scanCode方法实现扫描二维码的功能

    在微信小程序中,你可以使用 wx.scanCode 方法实现扫描二维码的功能。以下是一个简单的示例代码: 在上述代码中,我们使用 wx.scanCode 方法来调用扫描二维码的功能。当扫描成功时, success 回调函数将会被调用,而当扫描失败时, fail 回调函数将会被调用。通过 res.result 可以

    2024年02月15日
    浏览(31)
  • vue3 - 最新手机扫码PC网站二维码登录功能,用手机端扫描PC端vue3网页的登录二维码,然后在手机上点击“确认登录“完成登录,PC网页生成登录二维码,用户拿手机扫码,手机上点确定后电脑端做出响应

    在vue3开发中,详细实现 “PC电脑网站生成微信登录二维码+手机扫码登录+双端同步数据”,利用扫码实现网站登录功能、用户用手机扫描电脑端二维码进行登录的详细教程步骤(电脑端PC网页、手机端都是vue3开发,支持将手机端改造成微信小程序、uniapp安卓苹果app、H5网页等

    2024年04月13日
    浏览(31)
  • H5项目实现扫描二维码功能 -- html5-qrcode

    vue3中使用 html5-qrcode 实现扫描二维码功能。 实现原理:调取手机摄像头扫一扫功能实现 注:调取手机摄像头需要再 https协议 下才可以,有的项目启动配置 https:true 可以实现启动的项目协议为 https 且可以访问,有的还是需要证书才能访问 1、下载 html5-qrcode 2、使用

    2024年02月06日
    浏览(20)
  • java实现二维码生成功能

    由于现在对二维码的使用比较多,正好我在项目里面也使用到了,所以写篇博客记录一下。 这里我是将我博客主页的url生成二维码,微信扫一扫可以看到我的博客主页(欢迎骚扰) 4.1、设置参数 上面这个只是简单的生成二维码,接下来说说自定义参数的方式生成,如长、宽

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包