본문 바로가기

안드로이드44

[안드로이드] "Google Play 정책: 데이터 보안 양식 잘못됨" 해결 방법(Feat. 애드몹) # Google Play 정책을 준수하지 않음 - "데이터 보안 양식 잘못됨" 해결 방법 애드몹(AdMob) 광고를 탑재한 안드로이드 앱을 서비스 중에 구글 플레이에서 아래와 같은 메일을 받았다. 조치 필요: 앱이 Google Play 정책을 준수하지 않음 발견된 문제: 데이터 보안 양식 잘못됨 Play Console에서 앱의 데이터 보안 양식을 검토한 결과 데이터 보안 양식의 내용과 앱의 사용자 데이터 수집 및 공유 방식이 일치하지 않음이 확인되었습니다. 모든 앱은 데이터 보안 양식을 정확하게 작성하여 데이터 수집 및 공유 관행을 공개해야 합니다. 이 요구사항은 앱에서 사용자 데이터를 전혀 수집하지 않는 경우에도 적용됩니다. 앱의 데이터 보안 양식에서 수집하는 사용자 데이터임을 명시하지 않은 사용자 데.. 2022. 9. 18.
[안드로이드] TabLayout 속성 설정 총정리: Text color/size, Tab height/backgroundColor, Indicator line width/color, Icon 등 # 안드로이드 TabLayout 속성 설정 총정리 1. Tab 텍스트 색상/크기/스타일(볼드체) 2. Tab 높이/배경색 3. Tab Indicator(밑줄) 두께/색깔/위치 4. Tab 아이콘 5. TabLayout 너비 화면 채우기 6. Tab 선택시 Ripple 효과 제거 방법 # TabLayout Text 설정 1. 텍스트 색상(Text Color) 기본 텍스트 색상과, 탭이 선택되었을 때의 텍스트 색깔을 설정할 수 있다. - 기본 텍스트 색상(레이아웃 XML파일 > TabLayout 태그) app:tabTextColor="색상" - 선택된 텍스트 색상(레이아웃 XML파일 > TabLayout 태그) app:tabSelectedTextColor="색상" 2. 텍스트 사이즈(Text Size) + .. 2021. 9. 2.
[안드로이드] TextView 임시 텍스트 설정 방법(tools:text): 개발시에만 노출, 런타임 비노출 안드로이드 개발 시, 런타임에는 표시되면 안 되는 값들이 있을 수 있다. 예를 들어 서버에서 데이터를 받아와 TextView에 표시하는 경우, 통신 딜레이로 인해 기존에 가라(?)로 입력해둔 값이 노출되는 문제가 발생한다. 하지만 개발 작업의 편의와 대략적인 레이아웃 파악을 위해서는 가라 데이터를 입력해두는게 필요할 때가 있다. 이러한 니즈를 충족시키기 위해 안드로이드는 tools:text 네임스페이스:속성을 통해 아래의 기능을 지원한다. 1. 안드로이드 스튜디오의 미리보기(Preview: Design 모드)에는 노출된다. 2. 단, 실제 앱 실행(런타임)시에는 노출되지 않는다. # tools:text 사용방법 1. tools 네임스페이스 추가: xmlns:tools=" 2021. 9. 1.
[안드로이드] 커스텀뷰: Paint 적용된 텍스트 너비, 높이(width, height) 확인 방법 안드로이드 커스텀뷰(CustomView)에서 Paint로 텍스트 사이즈를 설정하고, Canvas로 텍스트(drawText())를 그렸을 때, Canvas를 통해 그려진 텍스트의 너비와 높이를 파악해야 할 경우가 있다. 텍스트의 너비(가로)/높이(세로)를 고려하여 다른 뷰를 그려야하는 경우 등등. 방법은 대략 2종류가 있는 것 같다. 1. 텍스트 width만 체크하는 방법 2. 텍스트 widht, height 모두 체크하는 방법 1. 텍스트 너비(Width)만 체크하는 방법 1) Paint.measureText(text: String) : text의 너비를 Float로 반환 2) Paint.measureText(text: String, start: Int, end: Int) : text의 start인덱스부.. 2021. 8. 31.
[안드로이드] TextView 텍스트 문자열 일부 색상/크기/스타일 변경 설정 방법: Spannable 안드로이드에서 TextView 사용시, TextView 내부의 텍스트 글자마다 서로 다른 스타일(색깔, 크기, 볼드체 등)을 적용해야 할 때가 있다. 물론 글자마다 각각 TextView를 생성해서 처리해 주어도 되긴 한다. 하지만 TextView를 하나만 사용하면서 내부의 각 문자열들을 따로 처리할 수 있다면 더욱 효율적일 것이다. 안드로이드는 SpannableStringBuilder를 통해 이런 기능을 지원해준다. # SpannableStringBuilder 사용방법 1. TextView의 text를 SpannableStringBuilder로 변환 2. 스타일/크기/색상 Span 객체 생성 3. SpannableStringBuilder에 Span 적용 4. TextView의 text에 Spannable.. 2021. 8. 30.
[안드로이드] getDimension() vs. getDimensionPixelSize() 차이 안드로이드는 dimens.xml 파일에 정의해둔 사이즈 크기 값을 코드 상에서 참조할 수 있도록 Resources 클래스를 통해 아래의 2가지 메서드를 제공한다. 두 메서드가 반환하는 값에 약간의 차이가 있어서 정리해 둔다. 1. getDimension() - 자바: public float getDimension (int id) - 코틀린 : open fun getDimension(id: Int): Float - 반환값: dimen.xml에 정의한 dp값을 기기에 맞게 px로 변환하여 소수점까지 Float 로 반환한다. 2. getDimensionPixelSize() - 자바: public int getDimensionPixelSize (int id) - 코틀린: open fun getDimensionP.. 2021. 8. 27.
[안드로이드] 안드로이드 폰 장치 OS 버전 체크 방법(Build.VERSION.SDK_INT) 최신 버전의 API를 사용하면, minSdkVersion에서 지원하지 않는 API라는 경고가 노출될 때가 있다. minSdkVersion 버전의 OS까지 지원하기로 설정해 두고, 이 버전에서 지원되지 않는 최신 버전 OS에서만 제공되는 API를 사용하기 때문에 발생하는 경고다. 해결 방법은 2가지다. 1. minSdkVersion을 높인다. - 최신 버전의 OS가 탑재된 스마트폰만 지원하는 방식이다. - 구버전의 OS가 탑재된 스마트폰은 지원하지 못한다. 2. 스마트폰의 OS 버전을 체크하여 분기 처리한다. - 최신 버전의 OS가 탑재된 스마트폰은 최신 API를 사용하도록 설계하고, - 구 버전의 OS가 탑재된 스마트폰은 다른 대체 코드를 사용한다. 여기서는 2번째 방법을 정리한다. # 안드로이드 장치 .. 2021. 8. 26.
[안드로이드] Toast 노출 위치 변경 설정 방법: setGravity() 안드로이드에서 Toast는 주로 화면의 하단에서 노출된다. Toast 노출 위치를 변경하려면 Toast.setGravity() 메서드를 호출하면 된다. # Toast 위치 설정 방법 setGravity(gravity: Int, xOffset: Int, yOffset: Int): Unit // 1. Toast 객체 생성 val toastTop = Toast.makeText(this, "상단 토스트", Toast.LENGTH_LONG) // 2. Toast 위치 설정 toastTop.setGravity(Gravity.TOP, 0, 0) // 3. Toast 띄우기 toastTop.show() 1) gravity: Gravity클래스에 정의된 상수값으로 Toast의 위치를 지정 ㄴ Gravity.TOP : 상.. 2021. 8. 24.
[안드로이드 스튜디오] 에뮬레이터(AVD) 카메라 설정 방법(고급 옵션) 안드로이드 스튜디오에서 AVD를 통해 에뮬레이터를 생성 시, 전면/후면 카메라를 사용할 수 있도록 설정하는 방법을 정리 한다. AVD 에뮬레이터 생성 방법 자체는 아래 글을 참고. 안드로이드스튜디오: 에뮬레이터 생성 및 실행 방법(AVD Manager) # 안드로이드 에뮬레이터 카메라 사용 설정 방법 AVD Manager에서 에뮬레이터 생성 마지막 단계에서 다음 순서로 진행한다. 1. Show Advanced Settings 클릭 만약 기존 에뮬레이터를 수정하려면, AVD Manager에서 연필 모양의 수정 버튼을 눌러 진입하면 된다. 2. Camera 세팅 항목에서 전면(Front), 후면(Back) 카메라를 설정한다. 3. 원하는 카메라 옵션을 선택한다. - 컴퓨터의 웹캠을 사용하려면 WebCam0을.. 2021. 8. 23.