Android之扫描二维码和根据输入信息生成名片二维码

开发中常常遇到二维码扫码操作,前段时间做项目要实现该功能,于是网上查找资料实现了,现在把他做出来给各位分享一下,主要包含了二维码扫描和生成二维码名片。

先来看看效果图:

 

生成的二维码,打开微信扫一扫即可看到生成的名片了,可以保存在联系人中。

二维码扫描方式如下图:

生成名片代码

public class BusinessCardActivity extends Activity{
    private EditText et_only_company;
    private EditText et_only_position;
    private EditText et_only_phone;
    private EditText et_only_email;
    private EditText et_only_web1;
    private EditText et_only_add;
    private EditText et_only_note;
    private EditText et_only_name;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_generate);
        et_only_company= (EditText) findViewById(R.id.et_only_company);
        et_only_position= (EditText) findViewById(R.id.et_only_position);
        et_only_phone= (EditText) findViewById(R.id.et_only_phone);
        et_only_email= (EditText) findViewById(R.id.et_only_email);
        et_only_web1= (EditText) findViewById(R.id.et_only_web1);
        et_only_add= (EditText) findViewById(R.id.et_only_add);
        et_only_note= (EditText) findViewById(R.id.et_only_note);
        et_only_name= (EditText) findViewById(R.id.et_only_name);
        initView();

    }

    private void initView(){
        findViewById(R.id.but).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String name = et_only_name.getText().toString().trim();
                String company = et_only_company.getText().toString().trim();
                String position = et_only_position.getText().toString().trim();
                String phone = et_only_phone.getText().toString().trim();
                String email = et_only_email.getText().toString().trim();
                String web1 = et_only_web1.getText().toString().trim();
                String add = et_only_add.getText().toString().trim();
                String note = et_only_note.getText().toString().trim();
                String contents = "BEGIN:VCARD\nVERSION:3.0\n" + "N:" + name
                        + "\nORG:" + company + "\nTITLE:" + position
                        + "\nNOTE:" + note + "\nTEL:" + phone + "\nADR:" + add
                        + "\nURL:" + web1 + "\nEMAIL:" + email + "\nEND:VCARD";
                try {
                    Bitmap bm = qr_code(contents, BarcodeFormat.QR_CODE);

                    ImageView img = (ImageView) findViewById(R.id.img_only);

                    img.setImageBitmap(bm);
                } catch (WriterException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
        });
    }

    public Bitmap qr_code(String string, BarcodeFormat format)
            throws WriterException {
        MultiFormatWriter writer = new MultiFormatWriter();
        Hashtable<EncodeHintType, String> hst = new Hashtable<EncodeHintType, String>();
        hst.put(EncodeHintType.CHARACTER_SET, "UTF-8");
        BitMatrix matrix = writer.encode(string, format, 400, 400, hst);
        int width = matrix.getWidth();
        int height = matrix.getHeight();
        int[] pixels = new int[width * height];
        for (int y = 0; y < height; y++) {
            for (int x = 0; x < width; x++) {
                if (matrix.get(x, y)) {
                    pixels[y * width + x] = 0xff000000;
                }

            }
        }
        Bitmap bitmap = Bitmap.createBitmap(width, height,
                Bitmap.Config.ARGB_8888);
        // 通过像素数组生成bitmap,具体参考api
        bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
        return bitmap;
    }
}

源码有点多就不一一贴出来了,直接下载源码即可。

源码点击下载

时间: 2024-08-28 09:33:37

Android之扫描二维码和根据输入信息生成名片二维码的相关文章

JS 生成名片、链接等二维码

<div id = "qrcodeid"></div> //生成的二维码放在此 div 中 <script type="text/javascript" src="js/jquery.qrcode.min.js"></script>//引入qrcode.js(到https://github.com/jeromeetienne/jquery-qrcode 下载 ) <script> fun

用工具实现在微信里面生成带二维码的海报?

公众号粉丝裂变.快速增粉,利用微信第三方平台,自动生成海报二维码,实现统计粉丝来源查询统计系统,将营销活动设计成一张精美的海报背景图,粉丝就可以在公众号里生成一个带自己微信头像.昵称及带统计的专属二维码活动海报,通过活动激励方式让粉丝分享到朋友圈,一而二,二而三--源源不断分裂形成风暴增长! 1.在高级功能中选择->生成二维码海报注意:海报二维码功能状态 开启/关闭 ⑴数据统计报表,查看每天粉丝数量情况汇总 ⑵生成海报设置生成海报触发关键词 ⑶消息提醒设置(扫二维码后推送信息/设置扫二维码数量限

Android的二维码功能实现以及长按识别二维码

一.初步集成Zxing项目 二维码的识别可是在生活中随处可见的,现在基本上所有APP都有二维码的相关操作,如果识别二维码从头开始开发做起来还是相当复杂和麻烦的,从零开始开发肯定不现实,最好的做法就是借助现有的开源项目,Github上名气最大的就是Zxing了,提供了多个平台的二维码扫码解决方案,开源项目地址是:https://github.com/zxing/zxing,我们今天集成Zxing到我们自己的项目中去,并实现一些二维码生成.扫描.长按识别二维码等相关操作: 1.下载Zxing项目所依

Android之自定义生成彩色二维码

先导个zxing.jar包 下面是xml布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=&

今天网站后台登录页面需要生成一个二维码,然后在手机app上扫描这个二维码,实现网站登录的效果及其解决方案如下

要实现二维码登录,需要解决2个技术,1.需要js websocket 与后台php实现长连接技术 2.实现二维码生成技术 要实现这个功能第二个算是比较简单,只需要下载一个php的二维码生成器即可,但要实现长连接技术,经过多方查资料,有2中方式 1种是nodejs来实现后台服务,另外一种是 利用php的一个扩展 swool来实现后台服务,本例采用的是后者swool, 第一步,在打开登录页面的时候,利用php生成一个唯一 sign,用js的websocket技术连接上后台服务,并且把sign发送给后

Android应用--QR的生成(二维码)

二维码的定义: 二维码(2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的. 在许多种类的二维条码中,常用的码制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等.1.堆叠式/行排式二维条码,如,Code 16K.Code 49.PDF417(如下图)等. 2.矩阵式二维码,最流行莫

Force.com微信开发系列(八)生成带二维码的参数

为了满足用户渠道推广分析的需要,公众平台提供了生成带二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送.目前有两种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1到100000).两种二维码分别适用于账号绑定.用户来源统计等场景. 用户扫描带场景值二维码时,可能推送以下两种事件: 1. 如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件

微信二维码支付native原生支付开发模式二

模式一相比,流程更为简单,不依赖设置的回调支付URL.商户后台系统先调用微信支付的统一下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付.注意:code_url有效期为2小时,过期后扫码不能再发起支付. 1.业务流程时序图 图6.9原生支付模式二时序图 业务流程说明: 1)商户后台系统根据用户选购的商品生成订单. 2)用户确认支付后调用微信支付[统一下单API]生成预支付交易: 3)微信支付系统收到请求后生成预支付

iOS 花式二维码生成和二维码识别

iOS 原生的二维码识别非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以后打算尽量用原生的二维码识别,然后最近把原生的二维码生成也顺便做了一遍,并且在原有基础上加了一些样式参数,封了一个小库方便以后使用. 项目地址:https://github.com/EyreFree/EFQRCode EFQRCode 是一个用 Swift 编写的用来生成和识别二维码的库,它基于系统二维码生成与识别进行开发. 生成:利用输入的水印图/图标等资源生成各种艺术二维码: 识别:识别率比 iOS 原生二