본문 바로가기

728x90
반응형

Android/UI

(17)
[안드로이드] 하나만 선택 가능한 체크박스 리사이클러뷰 만들기 체크박스는 선택/선택해제 두가지만 있습니다. 이를 리사이클러 뷰 내에서 하나만 선택 가능하고, 리사이클러 뷰 스크롤 시에도 유지되어야 합니다. 추가적으로, 리사이클러뷰에 데이터 바인딩을 이용해, 체크박스가 선택되었을때/선택 해제되었을때의 배경과 색을 커스텀 하였고, 클릭 리스너도 추가 하였습니다. 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까지 넣어서 좌석을 구분하였습니다...
[안드로이드] 커스텀 스피너 만들기 위와 같은 그림의 커스텀 스피너를 만들어 보겠습니다. 화살표 모양을 아이콘으로 하는 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..
[안드로이드] 화면 꺼짐 방지 코드 Kotlin window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) Java getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); onCreate() 에 추가
안드로이드 네비게이션 바, 상태바 숨기기 전체화면 모드로 아래를 스와이프 하면 네비게이션 바가 보이는 모드입니다. 이전 버전이 deperacated 되었으므로 버전을 나누어 줍니다. /** * Hides the system bars and makes the Activity "fullscreen". If this should be the default * state it should be called from [Activity.onWindowFocusChanged] if hasFocus is true. * It is also recommended to take care of cutout areas. The default behavior is that the app shows * in the cutout area in portrait mode if..
[안드로이드] (둥근/사각) 테두리 있는 ImageView 간단히 만들기 안드로이드에서 이미지를 테두리안에 집어넣고 싶을 때가 있는데요. 구현해 보았습니다. 먼저 drawable폴더에 (둥근 테두리)round_backgroud_border_black 혹은 (사각 테두리)square_background_border_black 파일을 추가하겠습니다. 하얀 바탕에 검은색 테두리로 하였습니다. 둥근 테두리 사각 테두리 파일을 만들었으면, 이미지뷰를 수정합니다. 사각 테두리 사각테두리의 경우 ImageView layout에 background 설정을하고, padding을 약간 집어넣어주면 됩니다. 둥근 테두리 ImageView.setClipToOutline(true) 를 이용합니다. setClipToOutline을 이용하면 이미지를 배경에 맞게 자를 수 있습니다. 다만, 테두리가 보이..
[안드로이드] 텍스트 추가시 스크롤 자동 내리기 스크롤 뷰 안에 있는 텍스트뷰에 텍스트를 추가하고, 추가된 텍스트뷰가 보이도록 스크롤 뷰가 자동으로 내려가야 합니다. 여러가지 방법이 있지만, 가장 잘 동작하는 코드입니다. PerfectScrollableTextView Class를 만듭니다. import android.content.Context import android.graphics.Rect import android.util.AttributeSet import android.widget.TextView class PerfectScrollableTextView : TextView { constructor(context: Context?, attrs: AttributeSet?, defStyle: Int) : super( context, attrs, ..
[안드로이드] layout 데이터 바인딩 string 값 비교 android:visibility="@{viewModel.roadGuideViewStatus.equalsIgnoreCase(@string/view_roadguide_arrive)?View.VISIBLE:View.GONE}"> .equalsIgnoreCase("...") .equals(`...`) 두가지 메서드로 사용할 수 있고, `...`를 통해 string입력할 수 있다.

728x90
반응형