[Android APP] feat. Kotlin/Kotlin 공부(34)
-
kotlin : bitmap 크기 조절하기
fun getResizedBitmap(bm: Bitmap, newHeight: Int, newWidth: Int): Bitmap { val width = bm.width val height = bm.height val scaleWidth = newWidth.toFloat() / width val scaleHeight = newHeight.toFloat() / height val matrix = Matrix() matrix.postScale(scaleWidth, scaleHeight) return Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false) } handler.postDelayed({ imageView.setImageBitmap(getResize..
2023.08.25 -
Kotlin : 사진 등록 처리
아이템을 추가한 뒤 그 아이템에 제목과 정보를 넣어주고 사진을 첨부할 수 있도록 만들었다. 1. 기존 이미지 조회 후, 사진 등록 버튼 클릭 시 pickPicture 함수 실행 //이미지 조회(pick Picture 함수를 실행 시키면 사진 편집이 가능하다) binding.imageRecycler.apply { layoutManager = LinearLayoutManager(this@WorkEditPhoto) adapter = OutsideAdapter(this@WorkEditPhoto, userToken, sysDocNum, consCode, imageOutsideData, {deleteItem(it)}, {pickPicture(it)}) } 2. 새로운 리사이클러 아이템 추가 //아이템 추가 버튼 b..
2023.08.25 -
Kotlin : RecyclerView snapHelper
구현하고 싶은 것 리사이클러뷰 사용 중 스크롤하면 아이템이 촤르르르륵 넘어가는 구조가 아닌 하나씩 보여주도록 구현하고 싶다. 해결 SnapHelper를 사용해 스크롤을 항목 단위로 넘어가게 해준다. 코드 //snaphelper 선언 val snapHelper: SnapHelper = PagerSnapHelper() //리사이클러뷰 viewHolder.binding.listItemRecycler.apply { layoutManager = LinearLayoutManager(context).also { it.orientation = LinearLayoutManager.HORIZONTAL } adapter = GalleryInsideAdapter(context as Context, galleryData, to..
2023.03.27 -
Kotlin : RecyclerView item EditText 중복 에러 해결
문제 1. RecyclerView Item에 EditText가 포함되어 있다. 2. RecyclerView Item을 추가하고, EditText를 수정할 수 있으며, 추가할 때 초기값을 넣어주고 setText로 세팅해준다. 3. 수정된 EditText값을 Item Data에 실시간으로 수정해주고 싶다. 4. TextWatcher를 onBind 부분에 넣어줬다. 5. error - 아이템을 수정한 뒤 추가 버튼을 누르면 처음 들어가는 초기값으로 전에 수정된 값들이 바뀐다. 원인 여러 방법과 여러 이유들을 생각하며 삽질해봤다. 내 경우에는 TextWatcher 사용 부분에서 각 아이템에 Listener가 끊기지 않고 사용되었고, RecyclerView에서 Recycle이 일어나면서 다른 아이템에도 영향을 미..
2023.03.27 -
Kotlin : 명시적 인텐트(Explicit Intent), 암시적 인텐트(Implicit Intent)
인텐트(Intent)란? 안드로이드 시스템은 컴포넌트 기반의 구조이며 4대 컴포넌트인 Activity, BroadCastReceiver, Service, ContentProvider가 서로가 목적에 맞게 존재한다. 인텐트는 이 4대 컴포넌트간의 유기적인 정보전달을 할 수 있게 해준다. 명시적 인텐트(Explicit Intent) - 인텐트에 클래스 객체나 컴포넌트 이름을 지정하여 호출될 대상을 확실히 알 수 있다. - 액티비티 클래스를 지정하면 안드로이드 운영체제가 해당 액티비티를 시작한다. - 주로 동일 앱에서 다른 컴포넌트를 실행시킬 때 사용한다. 암시적 인텐트(Implicit Intent) - 호출될 대상의 속성들을 지정했지만, 호출될 대상이 달라질 수 있다. - 해야할 작업을 알려주면 안드로이드 ..
2023.02.27 -
Kotlin : Lottie Library(애니메이션 적용)
Lottie가 뭔가요? Lottie는 AirBnB에서 제공하는 오픈소스 라이브러리이다. Json 기반 애니메이션을 랜더링하면 벡터 기반의 애니메이션이기 때문에 용량이 적고 해상도 저하가 없다는 것이 특징이다. 또한 적용이 쉽고 무료 애니메이션이 많기 때문에 사용자와 재밌게 소통해보기 위해 사용해보았다 1. (app:bundle) dependencies 추가 //lottie animation implementation 'com.airbnb.android:lottie:6.0.0' 현재 최신 버전 6.0.0 2. lottie 사이트 접속 후 로그인 https://lottiefiles.com/ LottieFiles: Download Free lightweight animations for website & ap..
2023.02.22