728x90
반응형
- [ pinslog/Log.daily() ][Android] 디버그 가능 APK 또는 Android App Bundle을 업로드했습니다. 보안상의 이유로 Google Play에 게시하기 전에 디버그를 사용 중지해야 합니다.2023-10-16 21:55:14앱 출시 과정 중 debuggable을 false로 지정해야하는 것은 익히 알고 있어서 처리를 해두고 build.gradle(:app) buildTypes { ... release { ... debuggable false ... } } aab를 업로드했는데 계속해서 디버그 가능 APK 또는 Android App Bundle을 업로드했습니다. 보안상의 이유로 Google Play에 게시하기 전에 디버그를 사용 중지해야 합니다. 문구가 뜨며 업로드가 안되는 것이다. 아 도대체 뭐지 하고 별 짓을 다하다가 깨달았다. manifest....! AndroidMenifest.xml
- [ pinslog/Log.daily() ][Android] bringToFront() in xml2023-10-15 13:55:51어떤 뷰를 레이아웃 가장 최상단에 위치시키기 위해 bringToFront 메소드를 사용한다. xml에서는 어떻게 해당 메소드와 같은 효과를 내는 속성을 줄 수 있을까? 위 사진에 있는 bringToFront()의 설명을 읽어보면 트리에서 뷰의 z 순서를 변경하여 다른 형제 뷰 위에 오도록 합니다. z의 순서를 변경한다고 되어있다. 그래서 translationZ 의 값을 주어 적용했다. android:translationZ="90dp" translationZ 값이 큰 것이 가장 최상단, 그러니까 화면 앞에 존재하게 된다. 공부하며 작성된 글이라 잘못된 정보가 있을 수 있습니다. 말씀해주시면 수정하겠습니다. 감사합니다. References 아래 글을 참고하여 작성 되었습니다. View | Android De..
- [ pinslog/Log.daily() ][Android] ProgressBar 색상 변경하기2023-10-14 10:43:10안드로이드의 위젯 중 진행 상태를 표시하는 프로그래스 바 프로그래스 바의 색상을 변경하려면 android:indeterminateTint="@color/path" 속성을 이용하면 된다. 색상을 코드 단에서 변경하고 싶다면 progressBar.indeterminateDrawable.setColorFilter( resources.getColor(R.color.main, null), android.graphics.PorterDuff.Mode.SRC_IN ) 위와 같이 colorFilter를 적용해주면 됐는데 setColorFilter는 API29부터 지원이 중단되었다. progressBar.indeterminateDrawable.colorFilter = BlendModeColorFilterCompat.cre..
- [ pinslog/Log.daily() ][Android] 기존 버튼에 ripple 효과주기2023-10-12 22:31:50다음과 같은 버튼이 있다고 하자, enable 상태에 따라 버튼의 색상 (또는 모양)을 다르게 주기 위해 우리는 drawable을 만들어 사용한다. (사진의 위쪽 버튼은 isEnabled = true, 아래쪽 버튼은 isEnabled = false 이다.) 상태에 따라 색상을 다르게 하고 싶으면 가장 상위 요소로 selector를 사용해야 한다. 그런데 이 상태에서 버튼을 클릭할 때 클릭 효과를 주려면 어떡해야할까? 클릭 효과를 줄 때는 ripple 를 사용해 효과를 적용 했었다. android:color -> 효과의 색상을 의미한다. android:effectColor -> 효과의 보조 색상이라는데 난 확인하지 못했다. 31 이상부터 사용가능하다고 한다. android:radius -> 효과가 발생할 ..
- [ pinslog/Log.daily() ][Kotlin] 마지막 요소를 제거한 리스트를 얻고 싶을 때2023-10-10 22:06:16코틀린의 컬렉션 중 리스트에서 요소를 삭제하는 방법은 다양하다. 이 중에서 나는 마지막 요소를 제거한 리스트를 얻고 싶었다. 이 때 dropLast(n)를 사용하면 된다. 인자로 넘겨주는 n개 만큼 요소가 삭제된 리스트가 다시 반환됨을 확인할 수 있다. val list = mutableListOf(1, 2, 3, 4, 5) val newList = list.dropLast(2) println(newList) // [1, 2, 3]
- [ pinslog/Log.daily() ][Android] Dialog 외부 영역 터치 가능하도록 설정하기2023-10-08 12:26:51안드로이드 다이얼로그를 생성하면 기본적으로 다이얼로그 바깥 영역은 터치할 수 없다. 이를 가능하게 하려면 다음과 같이 플래그를 설정/제거해주면 된다. window?.addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL) // 바깥 배경이 불투명해지는 것을 막음 window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) 결과 바깥 영역 터치를 가능하게 하고, 배경이 투명해지도록 설정했다. 터치가 가능한지 확인해보기 위해 버튼에 리스너를 달아 클릭 시 토스트가 뜨도록 해봤다. 버튼이 클릭 되는 것을 확인할 수 있다. 공부하며 작성된 글이라 잘못된 정보가 있을 수 있습니다. 말씀해주시면 수정하겠습니다. 감사합..
- [ pinslog/Log.daily() ][Android] 제약조건 프로그래밍 방식으로 변경하기 | How to move constraint programmatically2023-10-03 22:43:02제약조건 프로그래밍 방식으로 변경하기 updateLayoutParams를 이용한다. yourView.updateLayoutParams { topToBottom = targetViewId startToEnd = targetViewId bottomToTop = targetViewId // ... } 예시를 위해 텍스트 뷰 하나를 만들고, 제약조건을 아래와 같이 두었다. 현재는 화면 바깥에 존재하도록 되어 있다. 아무 버튼이나 클릭하면 해당 텍스트 뷰의 제약조건이 변경되도록 해주었다. private fun buttonClick() = View.OnClickListener { binding.testTextView.updateLayoutParams { topToBottom = binding.mediumJoinTe..
- [ pinslog/Log.daily() ][Android] Databinding Format Character2023-10-02 19:20:09데이터바인딩에서도 형식 문자를 이용해 값을 나타낼 수 있다. string.xml %s시 layout.xml android:text="@{String.format(@string/forecast_time, hourlyForecast.time)}" 공부하며 작성된 글이라 잘못된 정보가 있을 수 있습니다. 말씀해주시면 수정하겠습니다. 감사합니다. References
728x90
반응형