Android实现扫描和生成二维码

作者: i小灰 | 来源:发表于2020-07-19 23:44 被阅读0次

    Android实现扫描和生成二维码的具体代码,供大家参考,具体内容如下

    需求:

    就是需要把数据存放到二维码中,然后通过扫描二维码拿到数据,并展示到页面上。

    功能展示:

    Android实现扫描和生成二维码 Android实现扫描和生成二维码

    代码实现:

    1.引用第三方

    //AndroidX 版本
    implementation 'com.king.zxing:zxing-lite:1.1.7-androidx'
    

    2.在AndroidManifest.xml 声明CaptureActivity

    
    <activity
        android:name="com.king.zxing.CaptureActivity"
        android:screenOrientation="fullSensor"
        android:theme="@style/CaptureTheme" />
    
    

    3.主要代码

    
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageView;
    import android.widget.Toast;
    
    import androidx.annotation.Nullable;
    import androidx.appcompat.app.AppCompatActivity;
    
    import com.king.zxing.CaptureActivity;
    import com.king.zxing.util.CodeUtils;
    
    import org.json.JSONObject;
    
    import static com.king.zxing.CaptureFragment.KEY_RESULT;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        protected EditText edtResutlt;
        protected Button btnScan;
        protected Button btnCreate;
        protected EditText edtData;
        protected ImageView ivQr;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            super.setContentView(R.layout.activity_main);
            PermissionUtils.applyPermission(this);
            initView();
        }
    
        @Override
        public void onClick(View view) {
            if (view.getId() == R.id.btn_scan) {
                //跳转到扫描界面
                Intent intent = new Intent(this, CaptureActivity.class);
                startActivityForResult(intent, 1);
            } else if (view.getId() == R.id.btn_create) {
                String data = edtData.getText().toString().trim();
                if (TextUtils.isEmpty(data)) {
                    Toast.makeText(this, "请输入文字", Toast.LENGTH_SHORT).show();
                } else {
                    //生成二维码
                    Bitmap qrCode = CodeUtils.createQRCode(data, 600, null);
                    ivQr.setImageBitmap(qrCode);
                }
            }
        }
    
        /**
         * 在该方法中拿到扫描的数据
         * @param requestCode
         * @param resultCode
         * @param data
         */
        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == RESULT_OK) {
                if (requestCode == 1) {
                    String result = data.getStringExtra(KEY_RESULT);
                    Log.e("aaa", "resu-->" + result);
                    //展示到页面上
                    edtResutlt.setText(result);
                }
            }
        }
    
        private void initView() {
            edtResutlt = (EditText) findViewById(R.id.edt_resutlt);
            btnScan = (Button) findViewById(R.id.btn_scan);
            btnScan.setOnClickListener(MainActivity.this);
            btnCreate = (Button) findViewById(R.id.btn_create);
            btnCreate.setOnClickListener(MainActivity.this);
            edtData = (EditText) findViewById(R.id.edt_data);
            ivQr = (ImageView) findViewById(R.id.iv_qr);
        }
    }
    
    

    就这样 写完了

    相关文章

      网友评论

        本文标题:Android实现扫描和生成二维码

        本文链接:https://www.haomeiwen.com/subject/bpydkktx.html