二维码的扫描与生成

来源:互联网 发布:mac 不显示隐藏文件 编辑:程序博客网 时间:2024/05/21 22:26

今天没事写了一下二维码的扫描与生成,用的是google的ZXing

首先要把依赖包导入项目里面,

然后生成依赖包

首页的XML文件:

<?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:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.test.wjy.testzxing.MainActivity"    android:orientation="vertical">    <Button        android:id="@+id/btn_scan"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="扫描二维码" />    <TextView        android:id="@+id/tv_scanResult"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <Button        android:id="@+id/btn_create"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="20dp"        android:text="生成二维码" /></LinearLayout>
MainActivity.class类文件 主要为二维码的扫描

public class CreateEWMActivity extends AppCompatActivity {    private EditText et_input;//输入框    private Button btn_normal;//生成普通二维码    private Button btn_logo;//生成带LOGO的二维码    private ImageView image_content;//生成的二维码图片    private Bitmap bitmap;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_create);        initView();    }    private void initView(){        et_input = (EditText) findViewById(R.id.et_input);//输入框        btn_normal = (Button) findViewById(R.id.btn_normal);//生成普通二维码        btn_normal.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                String content = et_input.getText().toString();                if (TextUtils.isEmpty(content)){                    Toast.makeText(CreateEWMActivity.this,"您输入的内容为空!",Toast.LENGTH_SHORT).show();                    return;                }                et_input.setText("");                bitmap = CodeUtils.createImage(content,400,400,null);                image_content.setImageBitmap(bitmap);            }        });        btn_logo = (Button) findViewById(R.id.btn_logo);//生成带LOGO的二维码        btn_logo.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                String content = et_input.getText().toString();                if (TextUtils.isEmpty(content)){                    Toast.makeText(CreateEWMActivity.this,"您输入的内容为空!",Toast.LENGTH_SHORT).show();                    return;                }                et_input.setText("");                bitmap = CodeUtils.createImage(content,400,400, BitmapFactory.decodeResource(getResources(),R.mipmap.logo));                image_content.setImageBitmap(bitmap);            }        });        image_content = (ImageView) findViewById(R.id.image_content);//生成的二维码图片    }}

生成二维码的XML文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <EditText        android:id="@+id/et_input"        android:layout_width="match_parent"        android:layout_height="40dp" />    <Button        android:id="@+id/btn_normal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="20dp"        android:text="生成普通二维码"        android:textSize="14sp"/>    <Button        android:id="@+id/btn_logo"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="20dp"        android:text="生成带Logo二维码"        android:textSize="14sp"/>    <ImageView        android:id="@+id/image_content"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_marginTop="20dp" /></LinearLayout>

生成二维码的类文件

public class CreateEWMActivity extends AppCompatActivity {    private EditText et_input;//输入框    private Button btn_normal;//生成普通二维码    private Button btn_logo;//生成带LOGO的二维码    private ImageView image_content;//生成的二维码图片    private Bitmap bitmap;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_create);        initView();    }    private void initView(){        et_input = (EditText) findViewById(R.id.et_input);//输入框        btn_normal = (Button) findViewById(R.id.btn_normal);//生成普通二维码        btn_normal.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                String content = et_input.getText().toString();                if (TextUtils.isEmpty(content)){                    Toast.makeText(CreateEWMActivity.this,"您输入的内容为空!",Toast.LENGTH_SHORT).show();                    return;                }                et_input.setText("");                bitmap = CodeUtils.createImage(content,400,400,null);                image_content.setImageBitmap(bitmap);            }        });        btn_logo = (Button) findViewById(R.id.btn_logo);//生成带LOGO的二维码        btn_logo.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                String content = et_input.getText().toString();                if (TextUtils.isEmpty(content)){                    Toast.makeText(CreateEWMActivity.this,"您输入的内容为空!",Toast.LENGTH_SHORT).show();                    return;                }                et_input.setText("");                bitmap = CodeUtils.createImage(content,400,400, BitmapFactory.decodeResource(getResources(),R.mipmap.logo));                image_content.setImageBitmap(bitmap);            }        });        image_content = (ImageView) findViewById(R.id.image_content);//生成的二维码图片    }}

除了这些还需要在Application的

public void onCreate()方法里加一句
ZXingLibrary.initDisplayOpinion(this);
还需要加上下面的权限
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.VIBRATE" />

以上的过程就很容易的完成了二维码的生成与扫描。
源码下载地址:http://download.csdn.net/detail/u013184970/9700375


0 0
原创粉丝点击