본문 바로가기

728x90
반응형

Android

(80)
[안드로이드] 하나만 선택 가능한 체크박스 리사이클러뷰 만들기 체크박스는 선택/선택해제 두가지만 있습니다. 이를 리사이클러 뷰 내에서 하나만 선택 가능하고, 리사이클러 뷰 스크롤 시에도 유지되어야 합니다. 추가적으로, 리사이클러뷰에 데이터 바인딩을 이용해, 체크박스가 선택되었을때/선택 해제되었을때의 배경과 색을 커스텀 하였고, 클릭 리스너도 추가 하였습니다. background_cb_selected.xml background_white.xml item_cb.xml CbListAdapter.kt class CbListAdapter: RecyclerView.Adapter() { private var items: List = ArrayList() private lateinit var itemClickListner: ItemClickListener private var m..
[안드로이드] custom CheckBox 만들기 좌석을 선택해야하는 경우가 생겼습니다. 무언가를 선택/선택해제 해야할 경우 CheckBox를 커스텀해서 사용하면 됩니다. 위처럼 선택전/선택후/선택 불가 좌석으로 나누었습니다. checkbox selector xml을 만들어 줍니다. background_checkbox_seat 위처럼 체크 false,true, enabled false,true로 나누어서 img파일을 넣어주었습니다. 이제 Checkbox를 만들어주고, background에 위 drawable을 넣어주면 됩니다. android:background="@drawable/background_checkbox_seat" android:button="@null" 위 두줄을 추가해서 custom이 완료됩니다. text까지 넣어서 좌석을 구분하였습니다...
[안드로이드] 안드로이드 12 블루투스 퍼미션 대응하기 ― API 별 블루투스 권한 대응 Android 12에서는 새로운 블루투스 권한이 도입 되어, 대응할 필요가 있게 되었습니다. 이에 아래 공식문서를 참조하여 대응하였습니다. Android 12의 새 블루투스 권한 | Android Developers 내년 초 출시될 대형 화면용 기능 출시인 12L을 준비하세요. 지금 사용해 보기 Android 12의 새 블루투스 권한 Android 12에서는 BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, BLUETOOTH_CONNECT 권한을 도입합니다. 이를 통 developer.android.com 정리하자면, Android 12부터는 BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, BLUETOOTH_CONNECT 권한이 도입되었는데, BLUETOOTH_SCAN ..
[안드로이드] scrcpy를 사용하여 화면 미러링 하기 https://github.com/Genymobile/scrcpy 위의 github주소에서 Windows: download를 통해 zip파일 다운 후, sdk저장 경로인 Android\sdk\platform-tools 에 덮어쓰기해줍니다. 그 후 터미널에서, scrcpy 입력하면 실행됩니다. 부하가 너무 크면 에러가 날 수 있으므로, scrcpy --bit-rate 2M --max-size 800 bit rate와 size를 조정하여 실행하였습니다.
[안드로이드] Bitmap 사이즈 줄이기 /** * reduces the size of the image * @param image * @param maxSize * @return */ private fun getResizedBitmap(image: Bitmap, maxSize: Int): Bitmap? { var width = image.width var height = image.height val bitmapRatio = width.toFloat() / height.toFloat() if (bitmapRatio > 1) { width = maxSize height = (width / bitmapRatio).toInt() } else { height = maxSize width = (height * bitmapRatio).toInt() } ..
[안드로이드] 커스텀 스피너 만들기 위와 같은 그림의 커스텀 스피너를 만들어 보겠습니다. 화살표 모양을 아이콘으로 하는 layer-list를 만들어 drawble 폴더에 추가해줍니다. spinner_custom.xml color, icon, margin dp등을 적절히 조절해 줍니다. icon은 벡터 이미지면 적용이 안됩니다. 배경을 black으로 하면 오른쪽 공백을 조금 준것을 확인할 수 있습니다. spinner layout 추가 배경을 LinearLayout으로 감싸고 색깔을 주었습니다. Spinner 레이아웃에서 드랍다운 팝업의 스타일을 설정할 수 있습니다. android:overlapAnchor="false" android:popupElevation="10dp" android:popupBackground="#DEDEDE" andro..
[안드로이드] 엑셀 파일 기록 & 만들기 라이브러리 추가 https://poi.apache.org/download.html#POI-4.1.0 위의 사이트로 가서 poi-bin 압축파일 최신버전을 다운로드 받습니다. 다운로드 후 압축을 풀어, poi-5.1.0.jar 파일을 추가하면 됩니다. 간단히 추가하기 위해서 poi-5.1.0.jar 파일을 앱 프로젝트 폴더 내로 옮겼습니다. libs 폴더를 하나 만들어 옮겨줍니다. 그 후 안드로이드 스튜디오내에서, 오른쪽 클릭 하여 Add As Library하여 추가합니다. 그럼 gradle 파일에 추가된 것을 확인할 수 있습니다. saf로 파일 생성 하기 엑셀 파일을 생성, 저장하기 위해 saf를 사용합니다. @SuppressLint("SimpleDateFormat") fun exportExcelData..
[Android] Room + RxJava 정리 Dependecy // Room components def roomVersion = '2.3.0' implementation "androidx.room:room-runtime:$roomVersion" kapt "androidx.room:room-compiler:$roomVersion" implementation "androidx.room:room-ktx:$roomVersion" implementation "androidx.room:room-rxjava2:$roomVersion" androidTestImplementation "androidx.room:room-testing:$roomVersion" // RxJava implementation "io.reactivex.rxjava2:rxjava:2.2.17..

728x90
반응형