본문 바로가기

Android Studio18

Android Studio 팝업창 만들기 팝업창을 만드는 방법으로 여러가지 방법이 있는데, 이 포스팅에서 쓸 방법은 팝업 액티비티의 뒷 배경을 반투명하게 하여, 팝업창이 띄워지는 것처럼 보이도록 하는 방법이다. 1. 먼저, 팝업창을 만들 때 일반 Activity를 만들 듯이 똑같이 팝업 Activity를 만든다. 그 후 Activity를 구성한다라는 생각으로 팝업 xml 파일에 레이아웃을 구성시키면 된다. 이 때 팝업 xml 파일 구성시에는 꼭 전체 크기를 match_parent로 하면 안된다. 그렇게 할 경우 일반 화면 전환 식으로 넘어가기 때문에 팝업을 만들 수가 없다. ( ※ 'background=#00FFFFFF'는 안 써도 상관 없음 ) 이제 팝업을 띄울 때 뒷 배경은 대부분 어두운 반투명 배경이므로 그 부분을 만들어야 한다. 2. v.. 2020. 7. 22.
Android Studio setClipToOutLine() in RecyclerView 리사이클러뷰에서 아이템마다 이미지를 배경으로 주고싶은데 그 아이템 배경의 모서리가 둥글기를 원할 때가 있다. 예를 들어보자면, 이런 리사이클러뷰가 있다고 친다면, 이미지가 들어간 아이템들의 모서리가 전부다 둥글다. 이럴 경우에 일단 drawable 폴더에 radius 값을 준 형태의 xml 파일을 만든다음에 아이템의 background에 이 xml파일을 입혀주는 것까지는 원래 background를 주는 방식과 동일하다. 그 후 원래는 메인에서 setClipToOutLine(ture)를 써주면 되지만, 리사이클러뷰 같은 경우에는 아이템과 리사이클러뷰의 중간 매개체 역할을 해주는 viewHolder 파일의 bind 메소드 안에서 해당 이미지 파일에 setClipToOutLine(true)를 달아주면 된다. .. 2020. 4. 10.
Android Studio Request Code 안드로이드 스튜디오에서 requestCode를 쓰는 이유는 각 액티비티를 구별하고 데이터를 좀 더 원활히 주고받을 수 있도록 하기 위해서이다. 둘 중 한 가지를 꼽자면 그냥 액티비티를 구별하기 위해서이다. requestCode를 쓰려면 startActivityForResult()를 호출해야한다. 참고로 원래 Intent 쓰는 법을 보자면, val intent = Intent(this, MainActivity::class.java) startActivity(intent) 이런 식으로 startActivity에 intent를 넣어주면 그만이다. 하지만 requestCode를 주고받으려면 쓸 수가 없다. 그래서 사용하는 것이 startActivityForResult()이다. 이에 대해 짧게 말해보자면, 응답하.. 2020. 4. 7.
Android Studio Room Database 안드로이드 스튜디오에서 로컬 DB를 사용할 때 쓸 수 있는 것으로 SQLite와 Room이라는 것이 있다. Room은 2017년에 새로 나온 것이다. Room은 일종의 라이브러리라고 볼 수 있는데, SQLite의 기능을 쓸 수가 있으며, DB로 접근을 편하게 도와준다. SQLite를 쓸 경우에는 데이터에 변화가 생기면 수동으로 업데이트를 해주어야 한다. 이 과정에서 생각보다 시간이 많이 소요되며 오류가 생길 수가 있다. 또한 무의미한 boilerplate code를 많이 사용하게 된다. 이러한 단점들을 보완해서 나온게 Room이라고 볼 수 있다. 참고로 Room은 안드로이드 아키텍처의 구조 중 하나에 포함되어 있다. MVVM 아키텍처의 구성은 View-ViewModel-Model의 구조이다. 이 구조에 .. 2020. 4. 2.
Android MVVM Architecture MVVM 아키텍처란 View(뷰), ViewModel(뷰모델), Model(모델)로 이루어진 구조를 말한다. 뷰에서는 뷰를 참조하고 뷰모델에서는 모델을 참조하는 방식으로 뷰에서 모델로의 직접 참조는 불가능한 구조다. 뷰에서는 일을 시키지 않고 뷰모델의 LiveData들을 관전만 한다. LiveData를 보면서 변화하는 부분들이 있으면 바로 캐치하여 자동으로 업데이트되게끔 하는 구조이다. 각각의 역할들을 완전히 분리시킨 패턴으로 가독성과 재사용성을 높인 디자인 패턴이다. MVVM의 특징으로는 뷰에서 곧바로 DB에 접근하지 않는 다는 점이다. MVVM에서의 뷰는 그저 UI 갱신에만 충실할 뿐. 그 외적으로는 뷰모델을 참조하는 것 말고는 없다. 그리고 뷰모델에서는 모델에서 잘 정리된 데이터를 참조한다. 좀 더.. 2020. 3. 27.
Android Studio 그림자 생성 안드로이드 스튜디오에서 그림자를 만들 때, 밑에 사진처럼 버튼에 그림자를 다는 경우가 생긴다. (ex_view, ImageView 등 다양한 뷰에도 사용가능) 그림자를 추가할 때에는 drawable에 xml 파일을 생성해야 한다. 그리고 아래의 코드와 같이 layer-list라는 것을 사용하여 만든다. layer-list는 차곡차곡 레이어 한다는 의미로 말그대로 쌓는 것을 말한다. 색을 어두운 회색으로 살짝씩 변화를 주면서 자연스럽게 그림자처럼 만드는 원리이다. 색깔은 본인이 수정해도 된다. 가장 처음에 나타나는게 가장 바깥쪽에 있는 것이기 때문에 가장 밝은 그레이색 그리고 점차적으로 어둡게 해주면 된다. item을 차곡차곡 쌓아 만드는 형태로 xml 코드를 작성한 다음 이 파일을 넣고 싶은 해당 뷰에 .. 2020. 3. 24.