androidstudio二维码libzxing

第一步:需要引入libzxing工程
选择菜单:File/new/import module
 
第二步:将libzxing工程引入到项目中
右键项目选择菜单open module settings
选择app/ dependencies/+加号/Module dependencies,把libzxing选择并添加进去

注意:引入后我们不需要手工添加CAMERA、VIBRATE的权限,因为我们引入的libzxing模块的AndroidManifest.xml中已经帮我们添加好需要的权限


在程序里调用

startActivityForResult(new Intent(MainActivity.this,
        CaptureActivity.class),0);

  1. package cq.cake.libzxing;  
  2.   
  3. import android.content.Intent;  
  4. import android.graphics.Bitmap;  
  5. import android.graphics.BitmapFactory;  
  6. import android.os.Bundle;  
  7. import android.support.v7.app.AppCompatActivity;  
  8. import android.view.View;  
  9. import android.widget.CheckBox;  
  10. import android.widget.EditText;  
  11. import android.widget.ImageView;  
  12. import android.widget.TextView;  
  13.   
  14. import com.xys.libzxing.zxing.activity.CaptureActivity;  
  15. import com.xys.libzxing.zxing.encoding.EncodingUtils;  
  16.   
  17. /** 
  18.  * 二维码工具,libzxing的使用 
  19.  */  
  20. public class MainActivity extends AppCompatActivity {  
  21.   
  22.     private TextView tvResult;  
  23.     private EditText etText;  
  24.     private ImageView iv2Code;  
  25.     private CheckBox checkLogo;  
  26.     @Override  
  27.     protected void onCreate(Bundle savedInstanceState) {  
  28.         super.onCreate(savedInstanceState);  
  29.         setContentView(R.layout.activity_main);  
  30.         initView();  
  31.     }  
  32.   
  33.     private void initView() {  
  34.         tvResult = (TextView) findViewById(R.id.tv_result);  
  35.         etText  = (EditText) findViewById(R.id.et_text);  
  36.         iv2Code = (ImageView)findViewById(R.id.iv_2code);  
  37.         checkLogo  = (CheckBox) findViewById(R.id.cb_logo);  
  38.     }  
  39.   
  40.     /** 
  41.      * 开启二维码扫描 
  42.      * @param view 
  43.      */  
  44.     public void scan(View view){  
  45.         startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class),10001);  
  46.     }  
  47.   
  48.     /** 
  49.      * 得到二维码扫描返回的数据 
  50.      * @param requestCode 
  51.      * @param resultCode 
  52.      * @param data 
  53.      */  
  54.     @Override  
  55.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  56.   
  57.         if (resultCode==RESULT_OK){  
  58.             Bundle bundle = data.getExtras();  
  59.             String result = bundle.getString("result");  
  60.             tvResult.setText(result);  
  61.         }  
  62.     }  
  63.   
  64.     /** 
  65.      * 生成二维码 
  66.      * @param view 
  67.      */  
  68.     public void build2Code(View view){  
  69.         //生成一个宽高500的二维码,根据是否选中logo,来确定是否添加logo  
  70.         Bitmap qrCode = EncodingUtils.createQRCode(etText.getText().toString(), 500500, checkLogo.isChecked() ? BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher) : null);  
  71.         iv2Code.setImageBitmap(qrCode);  
  72.     }  
  73.   
  74. }



猜你喜欢

转载自blog.csdn.net/adaixiaoxiao/article/details/77346943