二维码开发

本文介绍了二维码的基本概念,包括其二维条码原理和数据表示方式。接着,详细讲述了二维码的使用,如解析结果并处理,以及如何制作包含图片的二维码。同时,推荐了几个二维码制作的开源框架,如zxing、Qart和zxing-android-embedded。
摘要由CSDN通过智能技术生成

二维码简介

二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;

在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理

它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。

二维码原理

二维码本质上是一段字符串,可以是一个网页的链接,也可以是一句话,电话号码,名片等

分析返回结果,对结果进行相应处理

public class MainActivity extends Activity {
   

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

    //扫一扫按钮点击
    public void startScan(View view) {
        //跳到扫描二维码页面
        Intent intent = new Intent(this, CaptureActivity.class);
        //startActivity(intent);
        //跳液面需要返回一个结果
        startActivityForResult(intent, 0);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode == RESULT_OK) {
            //获取解析的数据
            String text = data.getStringExtra("text");
            System.out.println("MainActivity:" + text);

            handleResult(text);
        }

    }

    //处理扫描结果
    private void handleResult(String text) {
        //网址: http://www.baidu.com; https://www.xxx.com
        //tel:110
        //smsto:13512345678
        //mailto:xx@163.com
        //market://
        //普通字符串
        if (TextUtils.isEmpty(text)) {
            return;
        }

        if (text.startsWith("http://") || text.startsWith("https://")) {
            //网址
            //跳到浏览器加载网页
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse(text));
            startActivity(intent);
        } else if (text.startsWith("tel:")) {
            //跳到打电话页面
            Intent intent = new Intent(Intent.ACTION_DIAL);
            intent.setData(Uri.parse(text));
            startActivity(intent);
        } else if (text.startsWith("smsto:")) {
            //跳到发短信页面
            Intent intent = new Intent(Intent.ACTION_SENDTO);
            intent.setData(Uri.parse(text));
            startActivity(intent);
        } else if (text.startsWith("mailto:")) {
            //跳到发邮件页面
            Intent intent = new Intent(Intent.ACTION_SENDTO);
            intent.setData(Uri.parse(text));
            startActivity(intent);
        } else if (text.startsWith("market://")) {
            //跳到应用市场页面
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse(text));
            startActivity(intent);
        } else {
            //用弹窗展示信息
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("扫描结果:");//标题
            builder.setMessage(text);//内容
            builder.setPositiveButton("确定", null);

            builder.show();
        }

    }

}

制作带有图片生成二维码

/**
 * 制作带有图片生成二维码
 * 
 *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值