ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • zxing 라이브러리 2편 (QR 만들기)
    회사 생활/QR 코드 인식 2023. 8. 14. 14:19

    1편 : zxing 라이브러리 1편 (QR 스캔)

    2편 : zxing 라이브러리 2편 (QR 만들기)

     

    1편에서는 업무로 받은 QR 스캔 부분을 만들었다.

    QR을 직접 만드는 일은 업무랑은 관련 없지만 그냥 해봤다.

     

     기존 dependency 세팅은 똑같 1편인 QR스캔 하는 부분하고 똑같다. 

     

    1. dependency 세팅

    build.gradle(app)

    // zxing 
    implementation 'com.journeyapps:zxing-android-embedded:4.3.0'

     

    AndroidManifest.xml

    <uses-permission android:name="android.permission.CAMERA" />

     

    2. 코드들

    MarkArActivity.java

    public class MakeQrActivity extends AppCompatActivity {
    
        private ActivityMakeQrBinding binding;
        private String url = "https://from-android-to-server.tistory.com/";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            binding = ActivityMakeQrBinding.inflate(getLayoutInflater());
            setContentView(binding.getRoot());
    
            binding.makeQRbtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    makeQR();
                }
            });
        }
    
        private void makeQR(){
            MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
            try{
                BitMatrix bitMatrix = multiFormatWriter.encode(url, BarcodeFormat.QR_CODE,200,200);
                BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
                Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
                binding.qrCodeImg.setImageBitmap(bitmap);
            }catch (Exception e){
                Log.d("here is error", e.toString());
            }
        }
    }

     

    activity_make_qr.xml

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MakeQrActivity">
    
        <ImageView
            android:id="@+id/qrCodeImg"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            app:layout_constraintBottom_toTopOf="@+id/guideline"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            app:layout_constraintGuide_percent="0.7"/>
    
        <Button
            android:id="@+id/makeQRbtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="QR 만들기"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="@+id/guideline" />
    
    
    </androidx.constraintlayout.widget.ConstraintLayout>

     

    해당 예제는 아래의 결과 페이지에서 볼수 있다싶이 'QR 만들기' 버튼 클릭시 QR code가 생성되게 만들어봤다. 

     

    '회사 생활 > QR 코드 인식' 카테고리의 다른 글

    zxing 라이브러리 1편 (QR 스캔)  (0) 2023.08.14
Designed by Tistory.