网上有很多关于二维码扫码和二维码生成的Demo,你可能不想透彻的了解它是如何实现的,但是你必须要知道如何引入到你的项目之中,我们研究一下如何将这些Demo引入到自己的项目之中。
我也写了一个Demo,看一下它的目录结构。
这些打红色箭头的部分都是必须要复制到你的项目之中的。引入到你的项目之后会有一些报错,你可以根据错误提示进行修改。
strings里面有一个字段要加入到你的项目之中
colors.xml中有一些你也要复制过去,还好他们都会报错提醒你。
下面我们看一下Demo的代码:
1.MainActivity.java:
package com.example.scancodedemo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
public static final int CODE=1;
private Button mScanCode;
private Button mCreateCode;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCreateCode=(Button)findViewById(R.id.btn_create_code);
mScanCode=(Button)findViewById(R.id.btn_scan_code);
mCreateCode.setOnClickListener(this);
mScanCode.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_create_code:
Intent intent1=new Intent(MainActivity.this,CodeShowActivity.class);
startActivity(intent1);
break;
case R.id.btn_scan_code:
Intent intent=new Intent(MainActivity.this,MipcaActivityCapture.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivityForResult(intent, CODE);
break;
default:
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CODE:
if(resultCode == Activity.RESULT_OK){
Bundle bundle = data.getExtras();
Toast.makeText(MainActivity.this, bundle.getString("result"), Toast.LENGTH_SHORT).show();
//result中保留了二维码的内容
}
break;
default:
break;
}
}
}
2.MipcaActivity.java(二维码处理类):
package com.example.scancodedemo;
import java.io.IOException;
import java.util.Vector;
import android.app.Activity;
import android.content.Intent;
import android.content.res.AssetFileDescriptor;
import android.graphics.Bitmap;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Handler;
import android.os.Vibrator;
impo