전체 글 (37) 썸네일형 리스트형 [Android] ExifInterface Under Nougat(7.0) #ExifInterface Under Nougat(7.0) ExifInterface을 InputStream이나 FileDescriptor로 사용 할 때 Nougat 이상에서만 사용할 수 있다는 컴파일 에러가 뜨는 경우가 있습니다(minSdk 24 미만일 경우) import android.media.ExifInterface { ... //Call requires API level 24 (current min is 21): android.media.ExifInterface() val ei = ExifInterface(inputStream) } [해결방법] Nougat 미만에서도 지원해야 한다면 androidx의 ExitInterface로 변경해서 사용합시다 1) dependencies 추가 implement.. [Andoird] 카메라 촬영/갤러리 이미지 가져오기 아래 3가지 방법으로 가져온 이미지를 이미지뷰에 보여주는 예제를 통해 사용법을 익혀보도록 하겠습니다 갤러리 이미지 카메라 촬영 이미지(thumbnail) 카메라 촬영 이미지 (full-size photo) 3가지 모두 Intent 요청 후 onActivityResult로 결과를 받는 형태 입니다 (registeractivityresult를 사용했을 경우라면 ActivityResultCallback) # 1 : 갤러리 이미지 이미지를 선택해서 불러오는 기능 1)요청 아래 2가지 방법이 많이 쓰입니다 pickImg_01 : Intent.ACTION_PICK 사용 / URI를 기반으로 이미지 선택 앱 호출 pickImg_02 : Intent.ACTION_GET_CONTENT 사용 / mime type을 지원하.. [Andoird] Generic (In Java) #What API 문서들을 보면 Generic 표현이 널려있는 것을 볼 수 있습니다. 보다 정확한 도큐먼트 이해를 위해 Generic 표현을 정리해 봅시다. Generic이란? 클래스, 인터페이스, 메소드 내부에서 사용할 데이터 타입을 외부에서 지정해서 사용 하는 방법 사전적 의미 : 장점 Casting, 즉 타입 변환 할 필요 없음 (불필요한 성능 소모X) 컴파일 시 잘못된 타입 사용에 대한 체크가 가능(타입 제한이 되므로) #예제 1 - 어떻게 사용하는가? JAVA Kotlin #예제 2 - 클래스에 Generic 적용 하기 Student 클래스에 'id'필드의 타입을 int, String 등 2가지 이상의 타입으로 받고 싶을 경우 Generic 사용 X public class Student { pr.. [Kotlin] 4.람다 In Collection(Sequence) # 람다 활용법 In Collection(Sequence) 컬렉션 함수를 연달아 사용하면 연산 결과마다 새로운 컬렉션들이 생겨나게 되는데, 원소의 갯수가 많은 경우 효율이 떨어 질수 가 있다. 이 경우 Sequence를 이용해서 연산 조건을 다~ 적용하고 나~중에, 결과 list가 필요한 시점에 list를 한번만 생성해서 얻을 수 있다 (실제로 연산/계산은 Sequence를 list로 변환 시점에 이루어 지기때문에 lazy, 지연계산이라 표현한다) Sequence는 iterator를 반환하는 함수 1개만 있는 interface이다. 원소 갯수가 많은 Collection에서는 Sequence를 사용하는 것을 기본으로 하자 Collection.asSequence()를 통해 Collection을 ->Seque.. [Android] startActivityForResult @deprecated #What startActivityForResult -> onActivityResult 짝꿍이 Deprected 됐으므로 대체 API를 알아봅시다. 1)일반적인 Activity이동 *디벨러퍼에서도 AndroidX를 사용한다면 대체 API를 사용하라고 적극 권장 중입니다 it is strongly recommended to use the Activity Result APIs introduced in AndroidX Activity and Fragment. https://developer.android.com/training/basics/intents/result #기존 방식 startActivityForResult을 RequestCode를 인자로 호출 후, onActivityResult에서 RequestC.. [Kotlin] 4.람다 In Collection # 람다 활용법 In Collection Collection 사용 시 람다를 유용하게 쓸 수 있는 경우가 많다 Collection - filter 함수 단어그대로 리스트 원소 중 원하는 원소만 filtering 하겠다는 뜻 리스트의 각 원소를 람다에 넘겨서 람다의 return 값이 true인 원소로 이루어진 리스트를 새로 반환한다 고로, 람다의 마지막 줄은 TRUE/FALSE를 리턴해야 한다 //filter 예제 (1) val listInt = listOf(1, 2, 3, 4) listInt.filter { it % 2 == 0 } // [2,4] //filter 예제 (2) val listStudents = listOf(Student("Tina", 4), Student("Scott", 1)) listS.. [Kotlin] 4.람다 - 기본 # 람다 람다? -> 함수에 인자로 전달 할 수 있는 코드 모음 JAVA 8 에서 사용할 수 있게된, 그 람다식... Kotlin에서도 사용할 수가 있다 람다는 메소드가 하나인 무명 객체를 대신 할 수 있다 람다 식 예시 in Kotlin val lambda = { a : Int, b : Int -> a+b } 1) 중괄호로 표현 2) 파라미터 a, b와 실제 본문인 'a +b' 사이는 화살표로( ->) 구분한다 람다 식 변수 대입 예시 val sumLamda = { a : Int, b : Int -> a+b } //람다를 변수에 대입 println(sumLamda(10,20)) //변수에 저장된 람다 호출 방법 -> 30 람다의 다양한 표현 방식 Collection.kt의 'maxByOrNull' 함수.. [Kotlin] 3. Object # Object 3가지 쓰임새에 대해 알아보자 singleton companion object anonymous object(무명객체) # 1) Object 키워드 - 단일 인스턴스 - singleton object 키워드로 obect declaration(객체 선언, object 선언)을 통해 싱글턴을 간단히 사용할 수 있다 클래스 선언 + 클래스 인스턴스 생성(단일) 을 한번에 해결해 준다 클래스 안에 객체 선언도 가능 -> 그래도 단일 인스턴스 인터페이스,클래스 상속도 가능 thread-safe + 번외 팁 : 인터페이스 구현이나, 클래스 상속 모두 ':'으로 표현하기에 구분이 헷갈릴 수 있지만..! 명칭 뒤에 '()' 가 붙으면 클래스고 없으면 인터페이스다. 아래 예제에서 Comparotor는 인.. 이전 1 2 3 4 5 다음