일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 안드로이드 스튜디오
- 에러
- image
- 코틀린
- coroutine
- DI
- 안드로이드
- 깃헙
- 의존성주입
- viewpager
- Github
- 웹뷰
- studio
- Retrofit
- 다트
- GIT
- MVVM
- Gradle
- build
- 안드로이드스튜디오
- 레트로핏
- Android
- 안스
- dart
- error
- Kotlin
- ADB
- RecyclerView
- WebView
- 스튜디오
- Today
- Total
목록안드로이드 (143)
코딩하는 일용직 노동자
라운드된 배경에 알맞게 view를 잘려 보이도록 처리하는 방법입니다. 흰색 라운드 배경위에 RecyclerView 를 배치했는데 배경의 라운드와 딱맞게 이미지가 가려져 보이도록 처리했습니다. https://youtu.be/d1BPxyT_Iog 실제 구현 영상 import android.content.Context; import android.graphics.Canvas; import android.graphics.Path; import android.graphics.RectF; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; /**..
유튜브를 웹뷰로 보여주도록 처리를 했는데 사이드 이펙트가 있었습니다. 전체화면 모드로 이동 후 복귀하면 웹뷰에 보여지는 화면 UI가 너무 이상하게 나오는겁니다. 또한 전체화면 모드에서 가로모드로 플레이가 되지 않습니다. 첨부된 소스를 이용하면 전체화면 모드시 가로모드로 전환해서 플레이가 됩니다. 또한 Back key 를 눌러 복귀해도 UI 상에 문제도 발생하지 않습니다. private fun setWebViewYoutube(wvYoutube: WebView, movieId: String) { wvYoutube.settings.apply { javaScriptEnabled = true setAppCacheEnabled(true) pluginState = WebSettings.PluginState.ON } ..
유튜브에서 url을 공유할때 보면 www.youtu.be/nA8PosPb70c 이런식으로 url 이 클립보드에 복사됩니다. 이걸 웹뷰에서 열면 영상 뿐만 아니라 좋아요 버튼같은 유튜브의 다른 불필요한 UI도 화면에 표시됩니다. 웹뷰에 유튜브 영상 알맹이만 꽉차게 표시하고 싶으면 웹뷰에 www.youtube.com/embed/영상아이디 이렇게 하면 됩니다. 영상아이디는 유튜브 공유 URL 의 가장 마지막 / 뒤에 영문+숫자가 아이디입니다. www.youtube.com/embed/nA8PosPb70c 이렇게 호출시키니깐 웹뷰 화면에 영상이 꽉 차게 표시 됩니다. ^^ wvYoutube.settings.apply { javaScriptEnabled = true setAppCacheEnabled(true) pl..
전체화면 사이즈의 Dialog 로 만들어진 화면이 있습니다. 메인화면에서 이동되는 서브화면이 모두 Dialog 로 만들어진 화면입니다. 그리고 이 화면은 웹뷰가 전체화면 사이즈로 배치되어 있습니다. 실행해보면 웹뷰로된 액티비티와 별반 다를게 없는 서브화면입니다. 이 화면이 키보드가 올라와있는 상태에서 웹의 팝업이 뜨게되면 키보드가 내려가면서 해당 부분이 제대로 그려지지 않아 하얗게 보이는 현상이 발생했습니다. 버튼 클릭시 키보드가 내려가는 시간과 팝업이 보이는 시간이 같아서 발생하는듯 합니다. 처음에는 팝업이 보이는 타이밍을 0.2~0.3초 정도 딜레이를 주면 되지 않을까 했는데... 문제는 로그인 화면뿐만 아니라 텍스트입력창이 있는 다른 여러 서브화면에서 똑같은 현상이 있기때문에 모든 화면의 팝업들에 ..
Android 10(Q) 부터는 기존의 저장공간과는 다른 개념으로 바뀌었습니다. 10 이전의 안드로이드는 기본적으로 내부저장공간과 외부저장공간으로 나뉩니다. # Android 10(Q) 이전의 Storage 내부저장공간은 샌드박스 형식으로 보호되는 공간을 할당받습니다. ex) com.kakao.talk, com.kakao.story, com.app.a 그리고 각 앱은 자신의 저장공간만 접근하고 사용할 수 있습니다. 10 에서도 내부저장공간은 마찬가지로 사용됩니다. 반면 외부저장공간은 하나의 큰 공통저장공간으로 운영되었습니다. READ_EXTERNAL_STORAGE/WRITE_EXTERNAL_STORAGE 권한만 있으면 어떤앱이 작성한 파일이든, 어느 경로에 있든, 어떤 파일이든 모두 접근/수정할 수 있었..
let 객체의 null 체크에 주로 사용. val userName: String? = "" userName?.let { println("userName : $userName") } apply 객체의 생성과 동시에 값을 초기화 할때 주로 사용. val textView = TextView(this).apply { text = "Hello World!!" setOnClickListener{} } run 이미 생성된 객체를 재접근해서 값을 셋팅할때 주로 사용. textView.run { text = "안녕하세요" setOnClickListener{} } with View 에 접근할때 주로 사용. fun ViewHolder.onBindViewHolder() { with(binding){ adapter = this..
앱에서 파일 첨부하는 기능을 구현하던중 Intent.createChooser 로 구현했더니 파일을 선택하더라도 파일의 정보가 앱으로 리턴되지 않는 경우가 있었습니다. (특정 파일 탐색기 앱에서만 선택된 파일의 정보가 리턴되었다.) 쓸만한 파일탐색기 라이브러리를 찾아서 사용해보니 개발기간도 많이 단축할 수 있었고 편리하게 이용할 수 있었습니다. https://github.com/hedzr/android-file-chooser hedzr/android-file-chooser a lightweight file/folder chooser or picker. Contribute to hedzr/android-file-chooser development by creating an account on GitHub...
안드로이드 개발을 할때 보통 테스트폰을 컴퓨터에 연결한 상태로 디버그를 하게 됩니다. 하지만 Wifi 를 이용해 무선으로 디버깅할 수 있습니다. terminal 에서 아래의 방법대로 진행하면 됩니다. # wifi 상태에서 디버깅 하는 방법 폰과 컴퓨터를 케이블로 연결한 상태에서 진행합니다. adb tcpip [port] > adb tcpip 5555 adb connect [ip]:[port] > adb connect 192.168.0.35:5555 이제 컴퓨터와 폰의 케이블을 제거해도 네트워크로 디버깅 가능합니다. # USB 디버깅 상태로 다시 전환하는 방법 다시 폰 연결후 adb -s [ip]:[port] usb > adb -s 192.168.0.35:5555 usb 연결된 디바이스 목록 확인 ad..
SSL 적용된 서버 접속하기 위한 소스. SSL 처리를 무시하는 소스이다. // TI2 val socketFactory = SSLContext.getInstance("SSL").let { sslContext -> val trustAllCerts = arrayOf(object : X509TrustManager { override fun getAcceptedIssuers(): Array? = emptyArray() override fun checkClientTrusted(certs: Array, authType: String) = Unit override fun checkServerTrusted(certs: Array, authType: String) = Unit }) sslContext.init(null,..
2019년 1월9일부터 안드로이드 SMS 권한정책이 변경되었습니다. 기존에는 RECEIVE_SMS 권한을 이용해서 SMS 내용을 읽고 인증번호를 자동입력을 해주었지만 이제는 예외신청을 하지 않으면 구글 플레이스토어에서 삭제 대상이 됩니다. https://developers.google.com/identity/sms-retriever/verify 이제는 SMS Retriever를 이용해서 권한 허용없이 문자를 읽어올 수 있습니다. 이 기능에는 약간의 제한사항이 있습니다. Android 단말에 Google Play Service version 이 10.2 이상 설치되어 있어야합니다. 그리고 SMS에도 몇가지 규칙이 있습니다. 1. 문자내용이 140byte를 초과하면 안됩니다. 2. SMS 맨앞에 가 반드시 ..