일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ChromeCustomTab
- jsontokotlinclass
- datastore
- prettyJson
- App Startup
- 403 Error
- skipcollapsed
- notification bar
- 이미지 gps
- navigation component
- Git
- Blinking
- application
- LOG
- ActivityResultContracts
- ExifInterface
- onResume
- BottomSheetDialog
- onReceivedSslError
- requestPermission
- kdoc-generator
- shotcut
- notification setting
- circlecrop
- notification
- webview
- Plugins
- Android
- room
- itemAnimator
- Today
- Total
목록Android (27)
Debbi Story
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val channel = NotificationChannel(channelData.id, channelData.name, NotificationManager.IMPORTANCE_DEFAULT) channel.enableVibration(true) channel.setShowBadge(true) notificationManager.createNotificationChannel(channel) }else { Intent("android.intent.action.BADGE_COUNT_UPDATE") .putExtra("badge_count", count) .putExtra("badge_count_package_na..
안녕하세요. 카메라앱 설정에서 위치 태그를 설정해두면 사진 촬영시 위치 정보가 같이 저장되는데 이미지의 meta 정보중에서 위치 gps 값을 가져오는 방법을 소개합니다. https://developer.android.com/reference/androidx/exifinterface/media/ExifInterface ExifInterface | Android Developers ExifInterface public class ExifInterface extends Object java.lang.Object ↳ androidx.exifinterface.media.ExifInterface This is a class for reading and writing Exif tags in various image ..
fun ImageView.loadCircularImage( model: T, borderSize: Float = 0F, borderColor: Int = Color.WHITE ) { Glide.with(context) .asBitmap() .load(model) .apply(RequestOptions.circleCropTransform()) .into(object : BitmapImageViewTarget(this) { override fun setResource(resource: Bitmap?) { setImageDrawable( resource?.run { RoundedBitmapDrawableFactory.create( resources, if (borderSize > 0) { createBitma..
안녕하세요. Jetpack 라이브러리에 있는 App Startup을 알아보려합니다. 기존에는 Application 클래스에서 외부라이브러 등을 초기화를 했었습니다. class MyApplication : Application() { override fun onCreate() { super.onCreate() // initialize component } } 앱 시작 라이브러리는 애플리케이션 시작시 구성 요소를 초기화하는 간단하고 효율적인 방법을 제공합니다. 라이브러리 개발자와 앱 개발자는 모두 앱 시작을 사용하여 시작 시퀀스를 간소화하고 초기화 순서를 명시 적으로 설정할 수 있습니다. 초기화해야하는 각 구성 요소에 대해 별도의 콘텐츠 공급자를 정의하는 대신 앱 시작을 사용하면 단일 콘텐츠 공급자를 공유하..
안녕하세요. 안드로이드 SharedPreferences를 찾아보다 로컬 저장소에 값을 저장하는 방법을 정리 해보려합니다. 1. SharedPreferences https://developer.android.com/training/data-storage/shared-preferences?hl=ko 키-값 데이터 저장 | Android 개발자 | Android Developers 저장하려는 키-값 컬렉션이 비교적 작은 경우 SharedPreferences API를 사용해야 합니다. SharedPreferences 객체는 키-값 쌍이 포함된 파일을 가리키며 키-값 쌍을 읽고 쓸 수 있는 간단한 메서드를 제공합 developer.android.com 2. EncryptedSharedPreferences http..
https://developer.android.com/guide/navigation/navigation-pass-data#supported_argument_types 위에 공식 문서에서 data를 전달 할 수 있는 타입을 확인하시고 이런식으로 data를 전달 받을 fragment에 argument 태그로 추가해줍니다. 사용자정의 타입도 전달 할 수 있고 Array타입으로도 넘길 수 있습니다. @Parcelize data class UserInfo( val name: String, val age: Int ): Parcelable 사용자정의 타입을 사용할 경우 Parcelable나 Serializable를 구현해야 합니다. 이전에는 Parcelable를 구현하려면 코드가길어지고 복잡했지만 @Parcelize..
일반적인 notification은 swipe시 사라지지만 swipe해도 사라지지 않고 계속 고정으로 떠있는 커스텀 notification은 만들어 보겠습니다. val contentIntent = Intent(context, MainActivity::class.java) contentIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK) val contentPendingIntent = PendingIntent.getActivity( context, 123, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT ) val refreshIntent = Intent(context, Noti..
developer.android.com/training/data-storage/room/accessing-data?hl=ko Room DAO를 사용하여 데이터 액세스 | Android 개발자 | Android Developers Room 라이브러리의 일부인 DAO(데이터 액세스 개체)를 사용하여 데이터베이스 테이블을 수정하는 방법 알아보기 developer.android.com Room 데이터베이스에 Insert 했을때 rowId를 반환 받을 수 있는데요. @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insertTask(task: TodoEntity): Long return값을 Long 타입으로 해주시면 됩니다. 참고로 onConflict는..