Android - 二维码扫一扫

1、教学视频:慕课网 http://www.imooc.com/note/648?sort=last

2、第三方包ZXing实现二维码扫描解析与生成功能;

3、Android Studio 项目目录:1、app  2、libzxing,app引用libzxing Module;

4、源代码:

  解析二维码: startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class), 0); //0:requestCode

         protected void onActivityResult(int requestCode, int resultCode, Intent data) {...}

  生成二维码: EncodingUtils.createQRCode("codeText", 500, 500, logoBitmap) ;

public class MainActivity extends AppCompatActivity {

    private TextView qrCodeResult;
    private EditText qrCodeEditText;
    private ImageView qrCodeImageView;
    private CheckBox useLogo;

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

        qrCodeResult = (TextView) findViewById(R.id.qrCodeResult);
        qrCodeEditText = (EditText) findViewById(R.id.qrCodeText);
        qrCodeImageView = (ImageView) findViewById(R.id.qrCodeImageView);
        useLogo = (CheckBox) findViewById(R.id.chk_useLogo);
    }

    public void scan(View view) {
        startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class), 0); //0:requestCode
    }

    public void make(View view) {
        String qrcodeText = qrCodeEditText.getText().toString();
        if (qrcodeText.equals("")) {
            Toast.makeText(MainActivity.this, "输入不能为空", Toast.LENGTH_SHORT).show();
            return;
        }
        Bitmap qrcodeBitmap = EncodingUtils.createQRCode(qrcodeText, 500, 500,
                useLogo.isChecked() ? BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher) : null);
        qrCodeImageView.setImageBitmap(qrcodeBitmap);

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK && requestCode == 0) {
            Bundle bundle = data.getExtras();
            qrCodeResult.setText(bundle.getString("result"));
        }
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.yizhui.qrcode.MainActivity">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/scan_qrcode"
        android:onClick="scan"/>
    <TextView
        android:id="@+id/qrCodeResult"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        />
    <EditText
        android:id="@+id/qrCodeText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/make_qrcode"
        android:onClick="make"/>
    <CheckBox
        android:id="@+id/chk_useLogo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/use_logo"/>
    <ImageView
        android:id="@+id/qrCodeImageView"
        android:layout_gravity="center_horizontal"
        android:layout_margin="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

  

posted @ 2016-04-12 17:58  chenyizh  阅读(625)  评论(0)    收藏  举报