Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.user.stockmanagementsystem;
- import android.graphics.Bitmap;
- import android.media.MediaScannerConnection;
- import android.os.Environment;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.Toast;
- import com.google.zxing.BarcodeFormat;
- import com.google.zxing.MultiFormatWriter;
- import com.google.zxing.WriterException;
- import com.google.zxing.common.BitMatrix;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.Calendar;
- public class GenerateQR extends AppCompatActivity {
- public final static int QRcodeWidth = 500 ;
- private static final String IMAGE_DIRECTORY = "/QRcodeDemonuts";
- Bitmap bitmap ;
- private EditText etqr;
- private ImageView iv;
- private Button btngenerate,btnback;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.generateqr);
- iv = (ImageView) findViewById(R.id.qrcode);
- etqr = (EditText) findViewById(R.id.etqr);
- btnback = (Button) findViewById(R.id.btnback);
- btngenerate = (Button) findViewById(R.id.btngenerate);
- btnback.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- OnBack();
- }
- });
- btngenerate.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if(etqr.getText().toString().trim().length() == 0){
- Toast.makeText(GenerateQR.this, "Enter String!", Toast.LENGTH_SHORT).show();
- }else {
- try {
- bitmap = TextToImageEncode(etqr.getText().toString());
- iv.setImageBitmap(bitmap);
- String path = saveImage(bitmap); //give read write permission
- Toast.makeText(GenerateQR.this, "QRCode saved to -> "+path, Toast.LENGTH_SHORT).show();
- } catch (WriterException e) {
- e.printStackTrace();
- }
- }
- }
- });
- }
- public String saveImage(Bitmap myBitmap) {
- ByteArrayOutputStream bytes = new ByteArrayOutputStream();
- myBitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
- File wallpaperDirectory = new File(
- Environment.getExternalStorageDirectory() + IMAGE_DIRECTORY);
- // have the object build the directory structure, if needed.
- if (!wallpaperDirectory.exists()) {
- wallpaperDirectory.mkdirs();
- }
- try {
- File f = new File(wallpaperDirectory, Calendar.getInstance()
- .getTimeInMillis() + ".jpg");
- f.createNewFile();
- FileOutputStream fo = new FileOutputStream(f);
- fo.write(bytes.toByteArray());
- MediaScannerConnection.scanFile(this,
- new String[]{f.getPath()},
- new String[]{"image/jpeg"}, null);
- fo.close();
- Log.d("TAG", "File Saved::--->" + f.getAbsolutePath());
- return f.getAbsolutePath();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- return "";
- }
- private Bitmap TextToImageEncode(String Value) throws WriterException {
- BitMatrix bitMatrix;
- try {
- bitMatrix = new MultiFormatWriter().encode(
- Value,
- BarcodeFormat.DATA_MATRIX.QR_CODE,
- QRcodeWidth, QRcodeWidth, null
- );
- } catch (IllegalArgumentException Illegalargumentexception) {
- return null;
- }
- int bitMatrixWidth = bitMatrix.getWidth();
- int bitMatrixHeight = bitMatrix.getHeight();
- int[] pixels = new int[bitMatrixWidth * bitMatrixHeight];
- for (int y = 0; y < bitMatrixHeight; y++) {
- int offset = y * bitMatrixWidth;
- for (int x = 0; x < bitMatrixWidth; x++) {
- pixels[offset + x] = bitMatrix.get(x, y) ?
- getResources().getColor(R.color.black):getResources().getColor(R.color.white);
- }
- }
- Bitmap bitmap = Bitmap.createBitmap(bitMatrixWidth, bitMatrixHeight, Bitmap.Config.ARGB_4444);
- bitmap.setPixels(pixels, 0, 500, 0, 0, bitMatrixWidth, bitMatrixHeight);
- return bitmap;
- }
- public void OnBack() {
- finish();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement