二维码在现在智能机普及的社会越来越方便,自己开发过程复杂!利用剥离出来的框架开发,方便简单!下面是利用Zxing框架开发的Demo
package cq.cake.libzxing;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.xys.libzxing.zxing.activity.CaptureActivity;
import com.xys.libzxing.zxing.encoding.EncodingUtils;
/**
* 二维码工具,libzxing的使用
*/
public class MainActivity extends AppCompatActivity {
private TextView tvResult;
private EditText etText;
private ImageView iv2Code;
private CheckBox checkLogo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
tvResult = (TextView) findViewById(R.id.tv_result);
etText = (EditText) findViewById(R.id.et_text);
iv2Code = (ImageView)findViewById(R.id.iv_2code);
checkLogo = (CheckBox) findViewById(R.id.cb_logo);
}
/**
* 开启二维码扫描
* @param view
*/
public void scan(View view){
startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class),10001);
}
/**
* 得到二维码扫描返回的数据
* @param requestCode
* @param resultCode
* @param data
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode==RESULT_OK){
Bundle bundle = data.getExtras();
String result = bundle.getString("result");
tvResult.setText(result);
}
}
/**
* 生成二维码
* @param view
*/
public void build2Code(View view){
//生成一个宽高500的二维码,根据是否选中logo,来确定是否添加logo
Bitmap qrCode = EncodingUtils.createQRCode(etText.getText().toString(), 500, 500, checkLogo.isChecked() ? BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher) : null);
iv2Code.setImageBitmap(qrCode);
}
}
其中应用的LibZxing地址为: LibZXing二维码工具