Android中怎么利用zxing生成二维码
导读:本文共2174字符,通常情况下阅读需要7分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 二维码生成原理(即工作原理)二维码官方叫版本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 的... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。二维码生成原理(即工作原理)
二维码官方叫版本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 的正方形。
下面是一个二维码的样例:
效果图如下:
前提:
导入 zxing 的 jar 后开始操作,老规矩最后有源码,作者布局默认相对布局。
第一步:定义二维码的长宽高及图片控件
第二步:实例化 QRCodeWriter 后利用 for 循环将二维码画出来,然后用图片控件加载图片。
源码如下:
布局文件:**
<Buttonandroid: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"/><ImageViewandroid: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"/><EditTextandroid: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="请输入要加载成二维码的内容"/>
java 文件:
publicclassMainActivityextendsActivityimplementsView.OnClickListener{privateintwidth=300;privateintheight=300;privateImageViewimageView;privateBitmapbit;privateButtonmybutton;privateEditTextmyeditText;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}privatevoidinitView(){imageView=(ImageView)findViewById(R.id.imageView);mybutton=(Button)findViewById(R.id.mybutton);mybutton.setOnClickListener(this);myeditText=(EditText)findViewById(R.id.myeditText);myeditText.setOnClickListener(this);}@OverridepublicvoidonClick(Viewv){switch(v.getId()){caseR.id.mybutton:Stringname=myeditText.getText().toString();if(name.equals("")){myeditText.setError("请输入内容");}else{zxing(name);}break;}}privatevoidzxing(Stringname){QRCodeWriterqrCodeWriter=newQRCodeWriter();Map<EncodeHintType,String>hints=newHashMap<>();hints.put(EncodeHintType.CHARACTER_SET,"utf-8");//记得要自定义长宽BitMatrixencode=null;try{encode=qrCodeWriter.encode(name,BarcodeFormat.QR_CODE,width,height,hints);}catch(WriterExceptione){e.printStackTrace();}int[]colors=newint[width*height];//利用for循环将要表示的信息写出来for(inti=0;i<width;i++){for(intj=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);}}
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
Android中怎么利用zxing生成二维码的详细内容,希望对您有所帮助,信息来源于网络。