일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- 소울칼리버6
- 장자명언
- Flutter
- bash
- 오픈소스
- Android
- Linux
- 벤자민플랭클린
- Streaming
- 이모지
- recyclerview
- 코틀린
- ASMR
- 공부집중
- DART
- kotlin
- 명언모음
- Coroutine
- jetpack compose
- 이모지메모
- 넷플릭스
- androidx
- Firebase
- Freesound
- 좋은글필사하기
- 1인개발자
- FSM
- 공자명언
- 명심보감
- Today
- Total
목록Source code or Tip/Android(Java, Kotlin) (63)
Vintage appMaker의 Tech Blog
App을 만들다보면 생각보다 많은 부분에서 Webview를 사용해야 할 경우가 있다. 주로 서버에서 기존에 사용했던 mobile web이 존재할 경우인데, 이 때 가끔은 Fileupload를 구현해야 할 경우가 발생한다. Android Webview에서 Fileupload를 구현할 때는 아래와 같은 순서로 구현해야 한다. 1. 파일 읽기/쓰기 퍼미션(이미지일 경우, 카메라도 포함) AndroidManifest.xml에서 정의하고 동적으로 구현해야 한다. 2. setWebChromeClient()에서 파라메터로 onShowFileChooser()가 오버라이드된 WebChromeClient 객체를 넘긴다. 3. onShowFileChooser()를 오버라이드할 때, filePathCallback(ValueC..
Android에서 Image를 사용한다면 대부분 Glide를 통해 서버에서 이미지를 가져온다. 그런데, Glide를 TextView에서 사용하려면 조금 다른 방법을 사용해야 한다. 1. 서버의 이미지를 BMP 형태로 가져온다(주로 백그라운드 형태로 실행). 2. 가져온 BMP를 BitMapDrawable으로 변환한다. 3. UIThread에서 가져온 BitMapDrawable을 대입한다. 이런 식으로 코루틴을 백그라운드에서 실행하고 그 결과를 UIThread(runOnUiThread)에서 처리하면 TextView의 배경을 서버에서 가져와 구현할 수 있다. [activity_main.xml] package com.psw.justtest import android.content.Context import a..
Android에서 app을 만들다보면 WebView를 종종 사용하게 되는데, 가끔 핸드폰 내의 Chrome에서는 전혀 문제없는 페이지가 앱의 WebView에서는 "javascript 관련 에러"를 발생할 때가있다. 이럴 경우는 크게 3가지를 채크하면 된다. 1. settings에서 javascriptEnabled를 true로 설정했는가? 2. settings에서 domStorageEnabled를 true로 설정했는가? 3. setWebChromeClient에 WebChromeClient()를 넘겨주었는가? 3가지 모두 문제가 없는데, 에러를 발생한다면 서버쪽 스크립트에서 수정해주는 수 밖에 없다. 단지 확률상 그럴 일은 흔치 않을 것이다.
TextView의 라인갯수는 lineCount로 알 수 있다. 그런데, ScrollView 형식의 부모에서는 바로 얻어낼 수 없다. 반드시 화면이 정리된 이후에 카운트를 가져올 수 있다. 그러므로 addOnLayoutChangeListener()를 구현하여 그 안에서 lineCount 값을 처리해야 한다. val txtLineCount = findViewById(R.id.txtLineCount) txtLineCount.addOnLayoutChangeListener { view, i, i2, i3, i4, i5, i6, i7, i8 -> // lineCount는 레이아웃이 완료된 시점에서 재대로 동작한다. val cnt = txtLineCount.lineCount val LIMITLINE= 5 if (cn..