728x90
반응형
SMALL
zxing 를 사용하여 QR 을 적용 시키다 보면 QR 카메라 찍는 중앙에 레이저의 색상을 변경하던가, 안보이게 하던가 하고 싶을때가 있는데, 보통 zxing_viewfinder_laser 검색을 이용해 코드를 적용시키는데, 꼭 필요한 주의사항이 있어서 기록함
◎ zxing 중앙 레이저의 색상을 변경하는 방법1.
<com.journeyapps.barcodescanner.ViewfinderView
anroidid:="@+id/zxing_viewfinder_laser"
android:laoyout_width:="match_parent"
android:laoyout_height:="match_parent"
app:zxing_possible_result_points="@color/color_000000"
app:zxing_result_view="@color/color_000000"
app:zxing_viewfinder_laser="@color/color_000000"
app:zxing_viewfinder_mask="@color/color/color_000000"/>
위의 코드에서 zxing_viewfinder_laser 부분의 색상을 변경하면 center laser 색상을 변경 할 수 있다.
단! 투명도는 적용되지 않는다.
◎ zxing 중앙 레이저의 제거방법1.(중앙 레이저 색상을 투명으로 만들어, 제거하는 효과를 적용 시키는 방법)
(본인이 직접 구현한 QR 코드중에 DecorateBarcodeView 를 수정, DecorateBarcodeView mDecorateBarcodVeiw 에 이미 값이 존재한다고 가정하고 설명함)
ViewfinderView viewfinderview = mDecorateBarcodVeiw.getViewFinder();
Field scannerAlphaField = null;
try{
scannerAlphaField = viewfinderview.getClass().getDeclaredField("SCANNER_ALPHA");
scannerAlphaField.setAccessible(true);
scannerAlphaField .set(viewfinderview, new int[1]);
}catch(Exception e){
Log.e("eTag", "e : "+e.getMessage);
}
!위의 코드는 코드 난독화 minifyEnabled = true 가 적용되면, getDeclaredField 부분에서 예외처리되어 작동하지 않는다.
◎ zxing 중앙 레이저를 제거하는 방법2.(레이저를 없애는 방법)
(본인이 직접 구현한 QR 코드중에 DecorateBarcodeView 를 수정, DecorateBarcodeView mDecorateBarcodVeiw 에 이미 값이 존재한다고 가정하고 설명함)
if(mDecorateBarcodVeiw !=null){
mDecorateBarcodVeiw .getViewFinder.setVisibility(View.INVISIBLE);
}
위의 코드는 가장 확실하게 중앙 레이저를 없애는 방법이다.
- 끝 -
'JAVA Study' 카테고리의 다른 글
Java 환경변수 버전 수정 8->11 안될때 (0) | 2022.05.13 |
---|---|
AppDistribution 테스터App 등록 방법 (0) | 2022.05.03 |
PATTERN 모음집 (0) | 2019.01.31 |
배열의 데이터를 조건에 맞게 분류 하기 (0) | 2019.01.31 |
try catch fianlly (0) | 2019.01.30 |