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

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

下面看完成过程:

1.先导入外界的类库 BarCodeTest

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>

把这个类的声明复制到你的项目中去

运行之后,会出现这样,反馈的信息



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

在布局中定义:

<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,当然你可以根据你项目的需求,放在自己 想放的地方,方便我们灵活运用)


下面是项目源码:http://download.csdn.net/detail/zhupengqq/9561594

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值