본문 바로가기

📱 Android54

이미지 수난기 까먹기 않기 위해 우선 적어두고,, 나중에 다시 정리할 예정입니다 1. clipRect(Rect rect)현재 클립 영역을 지정된 사각형으로 설정합니다.지정된 사각형 내부의 영역만 그려집니다.사각형 외부의 영역은 그려지지 않습니다.2. clipOutRect(Rect rect)현재 클립 영역에서 지정된 사각형 영역을 제외합니다.지정된 사각형 외부의 영역만 그려집니다.사각형 내부의 영역은 그려지지 않습니다. public static Bitmap createBitmap(@NonNull Bitmap source, int x, int y, int width, int height) { throw new RuntimeException("Stub!");}  createScaledBitmap 메서드Android의 .. 2024. 5. 16.
[Android] Glide vs Picasso 이미지 라이브러리 중 가장 유명한 Glide와 Picasso입니다 각각 장단점은 잘 모르고 있었던터라, 한번 조사해봤어요 Glide Glide.with(context) .load(imageUrl) .apply(RequestOptions() .centerCrop() .placeholder(R.drawable.loading_spinner) .diskCacheStrategy(DiskCacheStrategy.ALL)) .into(imageView) 장점 - GIF, webp 지원 - 이미지 로딩 성능이 좋다 - 생명주기와 연동된다 Glide.with(context) context가 Activity / Fragment 에 따라 해당 컴포넌트 생명주기와 연동해 동작합니다 ex) 이미지 로딩이 진행 중인데 컴포넌트들.. 2024. 3. 17.
[Android] @IgnoredOnParcel 통신을 위해 model을 설계했는데, 클라이언트에서만 사용하는 변수가 필요한 상황입니다 클라이언트에서만 사용될 값을 추가하는데, 만약 이게 서버 통신에서 쓰인다면.. 아찔한 상황입니다 T_T 이럴 경우엔, IgnoredOnParcel 을 사용합니다 @IgnoredOnParcel - Parcelize annotation이랑 함께 사용되는데 특정 필드가 Parcelable 구현에서 제외시킵니다 즉 Parcelable 인터페이스를 구현할 때 고려되지 않으므로, 인텐트에 데이터를 넘기거나 상태를 저장/복원하는 과정에서 이 변수는 무시되고, 클라이언트 상에서만 사용할 수 있습니다 :) @Parcelize data class User( val name: String, val age: Int, @IgnoredOnPa.. 2024. 2. 25.
[Android] SingleLiveEvent , EventWrapper SingleLiveEvent : 화면 회전 등 구성요소 변경 시, 이벤트가 여러번 호출되는 걸 방지하기 위해 사용 -> 단일 이벤트 사용 import android.util.Log import androidx.annotation.MainThread import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.MutableLiveData import androidx.lifecycle.Observer import java.util.concurrent.atomic.AtomicBoolean class SingleLiveEvent : MutableLiveData() { private val pending = AtomicBoolean(false) @Main.. 2023. 9. 3.