欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android利用zxing生成二維碼的過程記錄

 更新時間:2021年07月02日 11:34:28   作者:計蒙不吃魚  
Android中二維碼生成的最常用庫就是zxing了,正好目前項目有了生成二維碼的需求,所以下面這篇文章主要給大家介紹了關(guān)于Android利用zxing生成二維碼的相關(guān)資料,需要的朋友可以參考下

二維碼生成原理(即工作原理)

二維碼官方叫版本Version。Version 1是21 x 21的矩陣,Version 2是 25 x 25的矩陣,Version 3是29的尺寸,每增加一個version,就會增加4的尺寸,公式是:(V-1)*4 + 21(V是版本號) 最高Version 40,(40-1)*4+21 = 177,所以最高是177 x 177 的正方形。

下面是一個二維碼的樣例:

效果圖如下:

前提:

導(dǎo)入 zxing 的 jar 后開始操作,老規(guī)矩最后有源碼,作者布局默認相對布局。

第一步:定義二維碼的長寬高及圖片控件

第二步:實例化 QRCodeWriter 后利用 for 循環(huán)將二維碼畫出來,然后用圖片控件加載圖片。

源碼如下:

布局文件:**

  <Button
        android:id="@+id/mybutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="0dp"
        android:text="點擊顯示二維碼"
        android:textSize="20sp" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="192dp"
        android:src="@drawable/ic_launcher_background" />

    <EditText
        android:id="@+id/myeditText"
        android:layout_width="300dp"
        android:maxLines="1"
        android:layout_height="wrap_content"
        android:layout_below="@+id/mybutton"
        android:layout_centerHorizontal="true"
        android:ems="10"
        android:hint="請輸入要加載成二維碼的內(nèi)容" />

java 文件:

public class MainActivity extends Activity implements View.OnClickListener {


    private int width = 300;
    private int height = 300;
    private ImageView imageView;
    private Bitmap bit;
    private Button mybutton;
    private EditText myeditText;


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

    }


    private void initView() {
        imageView = (ImageView) findViewById(R.id.imageView);
        mybutton = (Button) findViewById(R.id.mybutton);
        mybutton.setOnClickListener(this);
        myeditText = (EditText) findViewById(R.id.myeditText);
        myeditText.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.mybutton:
          String name=myeditText.getText().toString();
          if(name.equals("")){
              myeditText.setError("請輸入內(nèi)容");
          }else{
              zxing(name);
          }

                break;
        }
    }
    private void zxing(String name){
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        Map<EncodeHintType, String> hints = new HashMap<>();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); //記得要自定義長寬
        BitMatrix encode = null;
        try {
            encode = qrCodeWriter.encode(name, BarcodeFormat.QR_CODE, width, height, hints);
        } catch (WriterException e) {
            e.printStackTrace();
        }
        int[] colors = new int[width * height];
           //利用for循環(huán)將要表示的信息寫出來
        for (int i = 0; i < width; i++) {
            for (int j = 0; j < height; j++) {
                if (encode.get(i, j)) {
                    colors[i * width + j] = Color.BLACK;
                } else {
                    colors[i * width + j] = Color.WHITE;
                }
            }
        }

        bit = Bitmap.createBitmap(colors, width, height, Bitmap.Config.RGB_565);
        imageView.setImageBitmap(bit);
    }

}


總結(jié)

到此這篇關(guān)于Android利用zxing生成二維碼的文章就介紹到這了,更多相關(guān)Android zxing生成二維碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android自定義View仿支付寶芝麻信用分儀表盤

    Android自定義View仿支付寶芝麻信用分儀表盤

    前幾天支付寶剛剛升級到v9.9,看了一眼里面的芝麻信用分,儀表盤挺好看的,所以想著來寫一個這個版本的儀表盤,不說完全一模一樣,只是為了猜測支付寶在做這個的時候是如何設(shè)計的,在此記錄一下,有需要的可以參考借鑒。
    2016-09-09
  • Android開發(fā)Jetpack組件Lifecycle原理篇

    Android開發(fā)Jetpack組件Lifecycle原理篇

    這一篇文章來介紹Android?Jetpack架構(gòu)組件的Lifecycle;?Lifecycle用于幫助開發(fā)者管理Activity和Fragment?的生命周期,?由于Lifecycle是LiveData和ViewModel的基礎(chǔ);所以需要先學(xué)習(xí)它
    2022-08-08
  • Android接收和發(fā)送短信的實現(xiàn)代碼

    Android接收和發(fā)送短信的實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了Android接收和發(fā)送短信的實現(xiàn)代碼,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android控件ImageSwitcher實現(xiàn)左右圖片切換功能

    Android控件ImageSwitcher實現(xiàn)左右圖片切換功能

    這篇文章主要為大家詳細介紹了Android控件ImageSwitcher實現(xiàn)左右圖片切換功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Android ellipsize的小問題介紹

    Android ellipsize的小問題介紹

    使用TextView的時候,需要長度過長自動顯示省略號,android里有原生的支持,本文將針對此問題進行深入剖析,需要的朋友可以參考
    2012-11-11
  • 詳解Android壁紙服務(wù)的啟動過程

    詳解Android壁紙服務(wù)的啟動過程

    你有設(shè)置過手機的壁紙嗎,你知道壁紙是什么樣的程序它是怎么在后臺運行的嗎?這篇文章主要介紹了詳解Android系統(tǒng)壁紙服務(wù)的啟動過程
    2021-08-08
  • Android保持屏幕常亮

    Android保持屏幕常亮

    本篇文章主要介紹了Android保持屏幕常亮,PowerManager.WakeLock的使用。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Android 關(guān)閉多個Activity的實現(xiàn)方法

    Android 關(guān)閉多個Activity的實現(xiàn)方法

    這篇文章主要介紹了Android 關(guān)閉多個Activity的實現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • Android Studio配置反混淆的實現(xiàn)

    Android Studio配置反混淆的實現(xiàn)

    這篇文章主要介紹了Android Studio如何混淆的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Android實現(xiàn)熱門標簽的流式布局

    Android實現(xiàn)熱門標簽的流式布局

    這篇文章主要介紹了Android實現(xiàn)熱門標簽的流式布局的詳細方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-12-12

最新評論