Android二维码扫描开发和二维码的生成
  DnNn49Tnttye 2023年11月02日 50 0


Android二维码扫描开发和二维码的生成




Android二维码扫描开发和二维码的生成_Text



下面看完成过程:


1.先导入外界的类库 BarCodeTest

Android二维码扫描开发和二维码的生成_android_02


2新建一个项目:


在布局中定义


<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=".MainActivity" >

    <Button
        android:id="@+id/btnscon"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="开始扫描" />

    <TextView
        android:id="@+id/tv1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="show" />
</LinearLayout>

在MainActivity.java中


package com.example.testqrcode;

import java.security.spec.EncodedKeySpec;

import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ToggleButton;

public class MainActivity extends Activity {
	private Button  scanButton,btngen;
	private TextView   tvshow;
	private EditText    edt1;
	private ImageView  iv1;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		scanButton=(Button) findViewById(R.id.btnscon);
		tvshow=(TextView) findViewById(R.id.tv1);
		scanButton.setOnClickListener(new OnClickListener() {			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Log.d("MainActivity", "可以扫描二维码了");
				Intent  startSan=new Intent(MainActivity.this,CaptureActivity.class);
				//startActivity(startSan);
				startActivityForResult(startSan, 0);
			}
		});
	}
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		if(resultCode==RESULT_OK){
			String result=data.getExtras().getString("result");
			tvshow.setText(result);
		}
	}
}


另外这个CaptureActivity.class是外部的类,所以要在 AndroidManifest.xml中定义


找到BarCodeTest的AndroidManifest.xml,会发现有这样一段话


<activity
            android:configChanges="orientation|keyboardHidden"
            android:name="com.zxing.activity.CaptureActivity"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:windowSoftInputMode="stateAlwaysHidden" >
        </activity>

把这个类的声明复制到你的项目中去
运行之后,会出现这样,反馈的信息


Android二维码扫描开发和二维码的生成_二维码生成_03



那么怎么根据输入的值生成一个二维码呢?


在布局中定义:


<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=".MainActivity" >

    <EditText
        android:id="@+id/edt1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="请输入要编码的内容" >
    </EditText>

    <Button
        android:id="@+id/btngen"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="生成二维码" />

    <ImageView
        android:id="@+id/iv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal"
        />

</LinearLayout>

在MainActivity.java中



package com.example.testqrcode;

import java.security.spec.EncodedKeySpec;

import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ToggleButton;

public class MainActivity extends Activity {
	private Button  scanButton,btngen;
	private TextView   tvshow;
	private EditText    edt1;
	private ImageView  iv1;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		tvshow=(TextView) findViewById(R.id.tv1);
		btngen=(Button) findViewById(R.id.btngen);
		edt1=(EditText) findViewById(R.id.edt1);
		iv1=(ImageView) findViewById(R.id.iv1);
		btngen.setOnClickListener(new OnClickListener() {			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String in=edt1.getText().toString();
				if(in.equals("")){
					Log.d("MainActivity", "请输入文本");
				}
				try {					
					Bitmap  qrcode=EncodingHandler.createQRCode(in, 400);
					iv1.setImageBitmap(qrcode);
				} catch (WriterException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
	}
}

生成的二维码会放在定义的ImgeView里(这里是放在ImgeView,当然你可以根据你项目的需求,放在自己 想放的地方,方便我们灵活运用)



Android二维码扫描开发和二维码的生成_Text




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  6xr041FDZFXx   2023年11月02日   67   0   0 androidUI
  uFFK7XN4gpvJ   2023年11月13日   43   0   0 Text团队合作翻译软件
DnNn49Tnttye