加依赖
implementation 'com.journeyapps:zxing-android-embedded:3.6.0'
implementation 'com.google.zxing:javase:3.0.0'
MainActivity
package wlt.com.hyjj;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
import com.journeyapps.barcodescanner.BarcodeEncoder;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
TextView jieguo;
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_main);
init();
}
Handler handler=new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
if (msg.arg1==101){
imageView.setImageBitmap((Bitmap) msg.obj);
}
return true;
}
});
public void init(){
jieguo=(TextView)this.findViewById(R.id.jieguo);
imageView=(ImageView)this.findViewById(R.id.imgscar);
}
public static Bitmap createBitmap(String str){
Bitmap bitmap = null;
BitMatrix result = null;
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try {
result = multiFormatWriter.encode(str, BarcodeFormat.QR_CODE, 400, 400);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
bitmap = barcodeEncoder.createBitmap(result);
} catch (WriterException e){
e.printStackTrace();
} catch (IllegalArgumentException iae){
return null;
}
return bitmap;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if (requestCode == 101) {
System.out.print("=====101=======");
IntentResult scanResult = IntentIntegrator.parseActivityResult(resultCode, data);
final String qrContent = scanResult.getContents();
Toast.makeText(MainActivity.this, "扫描结果:" + qrContent, Toast.LENGTH_SHORT).show();
jieguo.setText(qrContent);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.item,menu);
return true;
}
@Override
public boolean onOptionsItemSelected( MenuItem item) {
switch (item.getItemId()){
case R.id.bdtp:
Bitmap bitmap =zxing_Utlis.QRCode.createQRCode("https://blog.csdn.net/qq_38218307");
Message mess=new Message();
mess.arg1=101;
mess.obj=bitmap;
handler.sendMessage(mess);
if (bitmap!=null){
Toast.makeText(MainActivity.this,"成功",Toast.LENGTH_SHORT).show();
}
break;
case R.id.dtp:
Bitmap bit= BitmapFactory.decodeResource(getResources(),R.drawable.s);
Bitmap bitmaps= zxing_Utlis.QRCode.createQRCodeWithLogo("https://blog.csdn.net/qq_38218307",bit);
Message messs=new