1. 程式人生 > >在android上實現二維碼生成和掃描

在android上實現二維碼生成和掃描

先在androidstudio上匯入libzing的Module,然後再app上把那個libzing新增上去,這樣我們的app就關聯了那個libzing庫了

這裡寫圖片描述

然後我們就只在app這個工程下寫程式碼就行了。activity_main.xml佈局如下

<?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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation
="vertical" tools:context="com.example.edu.myqrcode.MainActivity">
<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="start scan" android:onClick="scan"/> <TextView android:layout_width="match_parent"
android:layout_height="wrap_content" android:text="Ruselt" android:textSize="26sp"/>
<TextView android:id="@+id/tv_ruselt" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="26sp"/> <EditText android:id="@+id/et_text" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="make" android:text="make QRCode"/> <CheckBox android:id="@+id/is_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="check"/> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" android:layout_gravity="center"/> </LinearLayout>

Mainactivity.java

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.xys.libzxing.zxing.activity.CaptureActivity;
import com.xys.libzxing.zxing.encoding.EncodingUtils;

public class MainActivity extends Activity {
    private TextView mTv_Ruslet;
    private EditText mInput;
    private ImageView mImg;
    private CheckBox isLogo;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTv_Ruslet= (TextView) findViewById(R.id.tv_ruselt);
        mInput= (EditText) findViewById(R.id.et_text);
        mImg= (ImageView) findViewById(R.id.img);
        isLogo= (CheckBox) findViewById(R.id.is_logo);
    }

    /**
     *生成二維碼
     */
    public void make(View view){
        String input=mInput.getText().toString().trim();
        //生成二維碼,然後為二維碼增加logo
        Bitmap bitmap=EncodingUtils.createQRCode(input,500,500,
                isLogo.isChecked()? BitmapFactory.decodeResource(getResources(),
                        R.mipmap.ic_launcher):null
                );
        mImg.setImageBitmap(bitmap);
    }

    /**
     *  掃描二維碼
     */
    public void scan(View view){
        startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class),0);

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //Log.i("TAG","resultCode: "+resultCode+" result_ok: "+RESULT_OK);
        if (resultCode==RESULT_OK){
            Bundle bundle=data.getExtras();
            String result= bundle.getString("result");
            mTv_Ruslet.setText(result);
        } if(resultCode == RESULT_CANCELED) {
            mTv_Ruslet.setText("掃描出錯");
        }
    }
}

執行結果:掃描跟生成二維碼都是ok的

這裡寫圖片描述

相關推薦

android實現生成掃描

先在androidstudio上匯入libzing的Module,然後再app上把那個libzing新增上去,這樣我們的app就關聯了那個libzing庫了 然後我們就只在app這個工程下寫程式碼就行了。activity_main.xml佈局如下

Android使用zxing-android-embedded(由zxing開發)實現生成掃描

前言: 目前二維碼(條形碼)的使用非常廣泛,所以啊,就想去實現以下嘛,最簡單的方法就是選擇開源庫了。 在網上一查開源庫還是很多的,介紹使用最多的就是zxing,所以這裡也就是用zxing了。但是由於zxing開源庫太大了,有很多不是Android要用的,所以

Android開發實現生成

要根據內容來實現二維碼的生成,這裡需要用到一個第三方的jar包(Google的開源jar包zxing.jar) 下面直接貼上我寫好的最最最簡單的demo public Bitmap setCode(String contents,int width,int height){

qt實現生成解析

sudo apt-get install qrencode qrencode (-s int) - o **.png QString(二維碼內容,連結) 解析:下載QZXing原始碼 http://www.csdn.net/tag/qzxing  解壓zip:sudo un

Android開發——Android中的生成掃描

0. 前言今天這篇文章主要描述二維碼的生成與掃描,使用目前流行的Zxing,為什麼要講二維碼,因為二維碼太普遍了,隨便一個Android APP都會有二維碼掃描。本篇旨在幫助有需求的同學快速完成二維碼生成和掃描的功能。本篇轉載自:http://blog.csdn.net/ha

Android 生成識別(附Demo原始碼)

  今天講一下目前移動領域很常用的技術——二維碼。現在大街小巷、各大網站都有二維碼的蹤跡,不管是IOS、Android、WP都有相關支援的軟體。之前我就想了解二維碼是如何工作,最近因為工作需要使用相關技術,所以做了初步瞭解。今天主要是講解如何使用ZXing庫,生成和識別二維碼。這篇文章實用性為主,理

Java實現生成解析(QRCode方式)

1.背景        在Java實現的二維碼生成和解析(zxing方式)中採用的是谷歌裡的二維碼生成方式,在這裡將另外的一種二維碼生成方式記錄下來,以方便自己和其他需要的人。 2.二維碼 第一步:匯入相應的jar包。在http://downloa

Java實現生成解析(zxing方式)

一、匯入包。 在Maven中pom.xml中加入。 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId

vue中實現生成

安裝 :  npm install --save qrcodejs2 js部分: <script> import QRCode from 'qrcodejs2' export default { methods: {

Android 生成掃描,近距離識別優化,從相簿選擇識別

做了一個二維碼掃描圖片,主要是掃描不出來,看到一篇部落格,其中的第二種方法可以掃描到,在此做筆記,以備後用,前面的進入相簿,返回,到獲取圖片路徑方法都一樣; (1):二維碼生成的方法順便貼上: private Bitmap createQRImage(String url, final

Android 基於google Zxing實現、條形碼掃描,仿微信掃描效果(現在正做個掃描App、收藏)

瞭解二維碼這個東西還是從微信中,當時微信推出二維碼掃描功能,自己感覺挺新穎的,從一張圖片中掃一下竟然能直接加好友,不可思議啊,那時候還不瞭解二維碼,呵呵,然後做專案的時候,老闆說要加上二維碼掃描功能,然後自己的屁顛屁顛的去百度,google啥的,發現很多朋友都

java實現生成及呼叫印表機列印

在開發二維碼列印的過程中走過幾次彎路,所以在這裡特意將其記錄下來留作備忘。一開始參考其他博主寫的文章,有介紹通過編寫JAVA後臺程式碼來獲取本地預設印表機的驅動實現列印。BUT!這樣就導致在本地開發測試時看似一切正常,一旦專案部署到linux環境下,就會完全失效了(JAVA後臺程式碼去獲取linux本地的印表

java實現生成及調用打印機打印

alt arc 自己 linu graph 首頁 tor ram gopath 在開發二維碼打印的過程中走過幾次彎路,所以在這裏特意將其記錄下來留作備忘。一開始參考其他博主寫的文章,有介紹通過編寫JAVA後臺代碼來獲取本地默認打印機的驅動實現打印。BUT!這樣就導致在本地開

在iOS實現功能、、條形碼、swift

iOS 識別二維碼、識別條形碼等  二維碼生成、條形碼生成等 掃碼背景色、掃碼框顏色、掃碼框4個角的顏色均可通過引數修改 動畫效果:線條上下移動、網格形式移動、中間線條不移動(一般掃碼條形碼的效果) 掃碼成功後,獲取當前圖片 模仿QQ掃碼介面 支付寶掃碼框效

高仿仿微信介面掃描效果 之 Android 基於google Zxing實現、條形碼掃描

    絕大多數android開發者都是使用google Zxing來實現二維碼、條形碼掃描,但官方和網上很多demo的掃描介面讓人不忍直視,今天我也做了一個,介面和執行效都是高仿微信最新版的掃描效果,執行效果圖如下: 主要是修改了ViewfindView類,我就不多解

java實現生成的幾個方法

1: 使用SwetakeQRCode在Java專案中生成二維碼http://swetake.com/qr/ 下載地址 或著http://sourceforge.jp/projects/qrcode/do

基於Zxing的生成掃描

 最近又在倒騰二維碼,發現網上的教程都不夠用,所以把之前整合的二維碼Demo有拿出來重新新增些功能,這裡也算是重新學習吧!      當然對於二維碼,相信大家都很熟悉了。這裡就不多說。本專案是基於Zxing的開源專案開發的。      這裡用的Demo是之

Java生成解析

二維碼生成: 引用的包: <dependency> <groupId>com.google.zxing</groupId>

iOS第三方生成掃描

匯入第三方框架libqrencode(生成二維碼)和ZBarSDK(二維碼掃描) 匯入標頭檔案 #import "QRCodeGenerator.h" #import "ZBarSDK.h" 建立兩個按鈕點選事件 點選按鈕一實現生成二維碼 - (I

生成掃描、圖片識別(Zxing)

這樣的例子雖然已經很多了,不過我在網上瀏覽了一圈,也沒找到幾個相簿二維碼圖片識別例子,好的演算法識別率才高。這裡有一個好點的演算法,演算法不是我寫的,只是作為整理記錄,給眾多安卓開發者一個方便。demo的UI有點low,不過功能卻是實實在在,有需要的朋友可以自定義一些UI介