[Android APP] feat. Kotlin(71)
-
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 : 작업 스케쥴링
1. 의존성 추가 implementation 'androidx.work:work-runtime-ktx:$version' 2. Worker 서브 클래스 생성 private const val TAG = "PollWorker" class PollWorker(val context : Context, workerParams : WorkerParameters) : Worker(context, workerParams){ override fun doWork(): Result { Log.i(TAG, "Work request Triggered") return Result.success() } } Worker 서브 클래스에는 백그라운드에서 수행하고자 하는 작업을 처리하는 로직을 넣는다. 그리고 이 클래스가 준비되면 Work..
2023.03.12 -
Kotlin : 명시적 인텐트(Explicit Intent), 암시적 인텐트(Implicit Intent)
인텐트(Intent)란? 안드로이드 시스템은 컴포넌트 기반의 구조이며 4대 컴포넌트인 Activity, BroadCastReceiver, Service, ContentProvider가 서로가 목적에 맞게 존재한다. 인텐트는 이 4대 컴포넌트간의 유기적인 정보전달을 할 수 있게 해준다. 명시적 인텐트(Explicit Intent) - 인텐트에 클래스 객체나 컴포넌트 이름을 지정하여 호출될 대상을 확실히 알 수 있다. - 액티비티 클래스를 지정하면 안드로이드 운영체제가 해당 액티비티를 시작한다. - 주로 동일 앱에서 다른 컴포넌트를 실행시킬 때 사용한다. 암시적 인텐트(Implicit Intent) - 호출될 대상의 속성들을 지정했지만, 호출될 대상이 달라질 수 있다. - 해야할 작업을 알려주면 안드로이드 ..
2023.02.27