安卓 二维码生成

二维码现在越来越火爆,使用的越发广泛,对于二维码二维码的生成与解析,有多种途径,这里我选择用google老大的ZXing。

1.要导入架包,添加依赖

2.写简单的布局

[java] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  4.     xmlns:tools="http://schemas.android.com/tools"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     android:orientation="vertical"  
  8.     tools:context="com.bwie.erweima.MainActivity">  
  9.   
  10.     <Button  
  11.     android:text="开始扫描"  
  12.     android:onClick="start"  
  13.     android:id="@+id/btn"  
  14.     android:layout_width="wrap_content"  
  15.     android:layout_height="wrap_content" />  
  16.     <TextView  
  17.         android:id="@+id/tv"  
  18.         android:text="扫描的结果是:"  
  19.         android:layout_width="wrap_content"  
  20.         android:layout_height="wrap_content" />  
  21.   
  22.     <EditText  
  23.         android:ems="20"  
  24.         android:id="@+id/ed"  
  25.         android:layout_width="wrap_content"  
  26.         android:layout_height="wrap_content" />  
  27.   
  28.     <Button  
  29.         android:onClick="sc"  
  30.         android:text="生成二维码"  
  31.         android:layout_width="wrap_content"  
  32.         android:layout_height="wrap_content" />  
  33.   
  34.     <ImageView  
  35.         android:id="@+id/iv"  
  36.         android:layout_width="wrap_content"  
  37.         android:layout_height="wrap_content" />  
  38. </LinearLayout>  


3.代码

[java] view plain copy
  1. public class MainActivity extends AppCompatActivity {  
  2.   
  3.     private TextView tv;  
  4.     private EditText ed;  
  5.     private ImageView iv;  
  6.   
  7.     @Override  
  8.     protected void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10.         setContentView(R.layout.activity_main);  
  11.         //获取控件  
  12.         tv = findViewById(R.id.tv);  
  13.         ed = findViewById(R.id.ed);  
  14.         iv = findViewById(R.id.iv);  
  15.     }  
  16.     //开始扫描按钮的监听事件  
  17.     public void start(View v){  
  18.         //开启意图,进行跳转,跳转的是架包类  
  19.         Intent intent = new Intent(MainActivity.this, CaptureActivity.class);  
  20.         //开启回跳  
  21.         startActivityForResult(intent,1);  
  22.     }  
  23.     //生成二维码按钮的监听  
  24.     public  void  sc(View v){  
  25.         //获取输入框的内容  
  26.         String s = ed.toString();  
  27.         //把drawablet图片转成Bitmap  
  28.         Resources res = getResources();  
  29.         Bitmap b = BitmapFactory.decodeResource(res,R.drawable.a_07);  
  30.         //调取架包类生成二维码的方法  
  31.             //参数1.文字字符串,2.宽3.高4.生成二维码里面的Logo  
  32.         Bitmap bitmap = EncodingUtils.createQRCode(s, 200200, b);  
  33.         //把获取的二维码图片赋值给imageview控件  
  34.         iv.setImageBitmap(bitmap);  
  35.     }  
  36.     //在自动接收跳转页面传过来的数据OnActivityResult里接收扫描结果,并对结果进行处理  
  37.   
  38.     @Override  
  39.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  40.         super.onActivityResult(requestCode, resultCode, data);  
  41.         //判断是否是扫描  
  42.         if(requestCode==1){  
  43.             //获取回传的图片  
  44.             Bundle bundle = data.getExtras();  
  45.             //判断是否为空  
  46.             if (bundle == null) {  
  47.                 return;  
  48.             }  
  49.             //获取字符串,因为二维码都是字符串生成  
  50.             String result = bundle.getString("result");  
  51.             //赋值给控件  
  52.             tv.setText("扫描的结果是:"+result);  
  53.         }  
  54.     }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值