본문 바로가기
반응형

Android 개발242

Android에서 Java코드로 margin값 변경하기 Android에서 레이아웃을 잡을 때는 XML을 이용하는데요. 하지만, 경우에 따라서, 동적으로 프로그래밍된 값으로 element를 움직여줘야 할 때가 있습니다. 이 때는 동적으로 margin값을 잡아줘야 할텐데요. 오늘은 이것에 대해서 정리해 보도록 하겠습니다. 1. 기본 Layout 정의 아래와 같이 Text밑에 LinearView가 있고, 그 밑에 LinearLayout안에 ImageView와 TextView가 있는 구조를 만들어 보겠습니다. 위 XML은 아래와 같이 보입니다. 2. Java 코드 저희가 이동시킬 대상은 id가 img_test인 안드로이드아이콘을 소스로 가지고 있는, ImgView인데요. 이 뷰의 마진 값을 저장하려면 LayoutParams객체를 가져와서 수정해야 합니다. 이 Lay.. 2017. 2. 20.
Android 의 Location Class와 위도, 경도 이용한 거리 계산 Location을 기반으로 하는 앱을 만들경우에 좌표를 이용해서 주소도 얻어야 하지만,특정 지점과 내위치 간의 거리 등, 좌표간의 거리를 구해야 하는 경우가 생기는데요.오늘은 어떻게 하면 좌표값으로 거리를 구할 수 있는지 정리해 보려고 합니다. 1. A,B Location을 정의 가장 먼저 필요한 것은, 거리를 재보아야 할 각각의 Location 객체를 구하는 것인데요.Location 클래스를 이용해서 객체를 생성한 후에,set메소드를 이용해서, 위도와 경도를 설정해 줄 수 있습니다. 먼저 A와 B위치의 Location을 정해보겠습니다.(물론, 유저의 스마트폰에서의 위치를 얻어와서 특정 위치와의 거리를 구할 수도 있는데요, 내 위치 표시방법은 아래 링크에서 확인해 주세요.)>>> Google Map 에서.. 2017. 2. 19.
Activity 와 Fragment 의 lifecycle (생명주기) 안드로이드는 에서 Activity와 Fragment의 lifecycle(생명주기)에 맞추어 개발을 하는 것이 매우 중요한데요. 오늘은 Activity와 Fragment의 생명주기에 관해서 정리해보겠습니다. 1. Activity 생명주기 먼저, Activity에 대해서 정리해볼텐데요,아래 이미지를 보시면서 전체 흐름에 대해서 보고, 하나씩 정리해보도록 하겠습니다. 1-1. OnCreate () 액티비티가 Launch되고 나서, 최초에 실행될 때, 호출 됩니다. 액티비티에 필요한 리소스들을 여기서 초기화 해주는데요. Button이라든가 EditText를 예로 들 수 있겠습니다. 1-2. OnStart () 유저에게 액티비티가 보이도록 해주는데요. 이 단계는 매우 빠르게 끝나고, onResume() 상태로 들.. 2017. 2. 18.
RxJava (RxAndroid)의 Map 과 FlatMap 메소드를 알아보자 RxAndroid (RxJava)는 유저들이 다양한 상황에서 쓸 수 있는, 메소드들을 제공해주는데요.오늘은 그중에서도, Map과 flatMap() 메소드에 대해서 정리해보고자 합니다. 혹시 RxAndroid 가 무엇인지에 대해서, 간단히 보고싶으시다면,아래의 글을 읽어주세요~.>>> RxAndroid 이해하기 Part1 2017. 2. 17.
Manifest 에서 Activity 속성 Android 최근 사용합 앱에서 제외시키기 특정 액티비티 실행후에 유저가 우측하단의 'ㅁ'키를 누르면, 최근 사용한 앱들이 나오는 데요.아래의 이미지와 같습니다. 그런데, 이 화면에 최근실행된 액티비티가 나오지 않아야 하는 경우도 있습니다.나오지 않아야 한다는 것은, 유저가 다시 실행시키지 않도록 해야한다는 것인데요.액티비티의 실행 조건이 있어서, 단순히 Back해서 돌아가지는 않도록 해야하는 경우겠네요.보통 Service를 실행시켜서 동작시키는 Activity의 경우가 많을 것 같구요. 그렇다면, 이 설정은 어떻게 하는 것일까요?두가지 방법이 있는데요,Manifest에서 선언을 해주거나, Intent에 Flag를 달아주는 것입니다. 하나하나 보면서 정리해 보겠습니다. 2017. 2. 13.
Java Map인 HashMap, TreeMap, LinkedHashMap 에 대해서 정리해 보자. 안드로이드 프로그래밍을 하면서 Map을 사용하게 되는 경우가 종종 있는데요.Java 에서 제공해주는 Map에는 HashMap, TreeMap, LinkedHashMap 이 있는데요.이들에 대해서 한번 정리해보겠습니다. 1. HashMap HashMap의 소스코드는 길어서 다 볼수는 없지만, 간단한 주석이 들어있는 앞부분을 참조해보겠습니다.눈이 띄는 부분들을 정리해보면 다음과 같네요.인자로, null값이 허용되는 key,value값을 로 허용한다.해쉬맵의 순서는 정해져있지 않으므로, 정해진 순서대로 iterate을 하고 싶다면, LinkedHashMap을 사용할 것여러 워커 쓰레드를 사용하는 경우, 자동으로 동기화되지 않으므로, synchronized를 해야할 필요가 있다.Serializable을 사용하므.. 2017. 2. 12.
안드로이드 에서 Shake (흔들림) 감지 하기 안드로이드에서 사용자가 shake하는 모션을 감지해내야 할때는 어떻게 해야할까요?오늘은 안드로이드 시스템에서 제공해주는, SensorManager를 이용해서 Shake를 감지하는 방법에 대해서 정리해보겠습니다. 1. SensorManager 얻어오기 Context.getSystemService() 를 통해서 SensorManger객체를 얻어올 수 있는데요.얻어오는 것 뿐만이아니라, 사용하지 않을 때, disable하는 것은 매우 중요합니다.이 Manager를 사용하는 것이 Battery를 소모시키기 때문입니다. 먼저, SensorManger를 얻어오겠습니다. 다음으로, 사용자의 움직임을 Listening할 수 있도록, SensorEventListener를 implement해줄깨요.구현해야할 메소드들이 나.. 2017. 2. 7.
Android에서 MediaPlayer 로 음악 재생하기 앱을 만들면서 소리를 재생하도록 해야하는 경우가 상당히 많은데요. 이럴때 사용하는 MedaiPlayer 클래스에 대해서 정리해보겠습니다. MediaPlayer는 사실 오디오뿐만이 아니라, 이미지, 비디오 파일과 스트림을 플레이할수 있는 다재다능한 Class 인데요. 앱의 리소스를 저장하는 raw나 Assets폴더에 저장해놓고 사용하거나, 특정위치에 파일을 생성해서 음악을 재생할 수도 있구요, 외부 URL을 통해서 스트리밍을 재생할수도 있습니다. 지원하는 media format은 아래 링크에서 확인하실수 있습니다. (mp3나 img파일들, h.264타입의 비디오도 포함되어 있네요.) >>> 미디어 포맷 링크 2017. 2. 4.
bundle 객체로 보낸 데이터를 onActivityResult 로 받아오기 안드로이드 앱개발을 하면서,액티비티간에 데이터를 주고받는 경우가 있는데요. 보통은, intent객체를 생성해서 putExtra()메소드의 인자로 데이터를 실어서 보낸다음, startActivity 메소드에 intent객체를 인자로 주어서, 액티비티간에 데이터를 주고 받았는데요. 이번에는 startActivityForResult를 이용해서 데이터를 주고받는 경우에 대해서 정리해보겠습니다.이 경우는 요청했던 액티비티가 종료되는 시점에, 어떤 데이터를 받아오고 싶을때 사용하는데요. 예를들면, 설정화면인 Activity_A가 알람소리를 선택하도록 Activity_B를 요청하고,알람소리의 리스트화면인 Activity_B에서 선택된 아이템의 종류를 선택하고 확인버튼을 누르면,그 값을 Activity_A에게 다시 전.. 2017. 1. 24.
안드로이드 Custom Toolbar 와 Theme 적용하기 오늘은 안드로이드 앱의 상단 헤더부분에 대해,custom하게 디자인하는 방법을 알아보겠습니다. 이 헤더 부분에 대해서 Android에서는 ActionBar라는 이름으로 제공되고 있는데요.이 ActionBar라는 것이 버전별로 다른 이름으로 다르게 제공되고 있어서 버전 호환 문제가 있습니다.supportLibrary에서는 ToolBar 라는 이름으로, 헤더 부분을 제공해주고 있는데요.보통은 이 ToolBar를 이용해야, 호환성 문제가 없기 때문에 ToolBar를 디폴트로 사용하게 됩니다. 기본적으로 제공하는 Toolbar(혹은 ActionBar)의 디자인만 이용해도 무리가 없지만,좀더 커스터한 디자인을 사용하는 앱을 만들려고 할때,어떻게 해야하는지 정리해 보겠습니다~. 1. Theme 정의 먼저, 커스텀에.. 2017. 1. 23.
Java의 3항 연산자는 알아야, 소스코드도 보인다 안드로이드 소스코드를 보면, 가끔씩 3항 연산자를 볼 수 있는데요.오늘은 이 3항 연산자에 관해서 정리해보고자 합니다.우선 공식을 보면 다음과 같은데요. 조건문 ? true일때의 값 : false일때의 값 자주 사용하지는 않기는 하지만 경우에 따라서는 가독성도 좋아지고 코드도 짧아져서 좋습니다.실제 코드를 보면서 정리해 보겠습니다. 1. 쉬운 예 먼저 쉬운 예를 보도록 하겠습니다.조건: 여기서 조건문은 i>9 이 true인지 false인지 를 묻고있습니다.공식대로 보면 아래와 같은데요.true이면: "참",false이면: "거짓",을 result에 넣으라는 것입니다. 2. 안드로이드 소스코드 예 이번에는 안드로이드 소스코드에서 실제 사례를 하나 뽑아서 보겠습니다. getName()이라는 메소드를 사용하면.. 2017. 1. 21.
Checkable interface 로 selectable한(선택할 수 있는) RecyclerView 리스트 만들기 안드로이드 앱을 만들면서 설정UI를 만들다 보면,카톡의 알람음 선택UI처럼,리스트를 누르면 그 아이템이 선택되도록 해야하는 경우가 있습니다. 오늘은 그 때 구현해야하는 Checkable 인터페이스 를 사용하여, 커스텀 리스트를 만들어보도록 하겠습니다. 1. Checkable interface 우선, Checkable interface가 무엇인지, 소스코드를 먼저 보고 가겠습니다~.view를 checkable하게 만들기위해서 사용하는 거군요.그리고, setChecked, isChecked, toggle() 을 구현해야 되네요. 그럼 이제 실제로 코드에 적용해보면서, CustomList를 만들어 보겠습니다. 2017. 1. 20.
Fragment 에서 Activity 로 데이터 전달하기 안드로이드 앱을 개발하다보면,Fragment에서 Activity로 데이터를 보내는 일이 생기는데요.오늘은 이 방법에 대해서 정리해보겠습니다. 사실, 데이터를 보내는 방법은 다른 방법들이 있을 수 있겠지만,이 글에서는 interface를 이용해서 보내는 방법을 사용하도록 하겠습니다. 참고로, inteface에 관해 정리한 글은 아래링크에서 볼 수 있어요~.>>>> 안드로이드를 위한 자바 인터페이스 #다중상속 #콜백 2017. 1. 16.
Android에서 Time Picker 생성하기 안드로이드에서 TimePicker를 사용해서 사용자에게 시간을 선택하도록 할 수 있는데요. 오늘은 이 TimePicker에 대해서 정리해보겠습니다. 1. XML에서 TimePicker 생성 참고로, 우리가 TimePicker는 저희들이 보통 Dropdown메뉴 같다고 하는 Spinner와는 다른 UI형태를 가지고 있습니다. 가장 최근 버전의 TimePicke Ui는 아래이미지와 같은데요. 위와 같은 TimePicker를 XML에서 부르는 방법은, 다음과 같습니다. 음, 그런데 옛날처럼 스크롤 하면서 내리거나 올리는 방식이 더 좋아보인다구요? 네, 그럼 xml에서 옵션을 하나만 더 넣으시면 되는 데요. timePickerMode="spinner" 요것만 더 넣어주시면 됩니다. 그럼 아래와 같이 위아래로 스.. 2017. 1. 15.
Android 에서 패키지명 ( Package Name ) 변경 하기 안드로이드 개발을 하다가 패키지 명을 바꾸고 싶을때가 있습니다. 패키지명은 개발이 끝나고 나서도, 웹에 다운로드링크를 남길때라든가, 은근히 사용하는 곳이 많은데요. 일단 개발시작하고나서도 바꾸는 것은 그렇게 어렵지 않습니다. 아래에서 실제 변경해보면서 정리해보겠습니다. 1. 패키지 디렉토리명 변경 실제 디렉토리명을 변경하기전에 해야 할 것은, 안드로이드 스튜디오 내에서 패키지의 논리적구조를 합쳐서 보여주는 옵션을 해제해주는 것인데요. 이는 수정하는 패키지 디렉토리를 선택해서 개별적으로 수정해주기 위해서입니다. 예를들면, com.tester.project => com.supertest.project 로 바꾸어 줄경우, tester디렉토리만 선택해서 supertest로 바꾸어 주면 됩니다. 먼저, 안드로이드.. 2017. 1. 14.
Android의 Realm 데이터베이스 파일 은 특별한 곳에 있지 않다 안드로이드 Realm을 이용한 앱을 만들때, 데이터가 이미 들어있는 DB파일을 직접 앱에 넣고자 할 때가 있습니다. CSV파일을 넣고, 앱에서 코드로 읽어들일 수도 있겠지만, 데이터가 커질수록, 그렇게 효율적인 방법은 아닌것 같구요. 역시나, 파일의 위치를 찾아서 직접 replace해주는 것이 가장 좋고 편할 것 같은데요. 사용하는,시나리오를 생각해보면, Mac의 RealmBrowser에서 만든 데이터를 default.realm으로 export시켜서, 안드로이드에 넣어주는 것이네요. 1. Realm DB파일 위치 찾기 Realm의 경우 환경변수로 DB이름을 주지 않았다면,생성되는 파일명은 default.realm 입니다. 그런데, 문제는 이 파일이 어디에 있는냐는 거죠. 루팅한 폰이 아니고서는 앱안의 데.. 2017. 1. 10.
Android 에서 File 저장하기 Part1. Internal Storage 편 안드로이드에서 이미지 캐쉬파일이나 DB파일등을 저장할 필요가 있는데요. 이 때 파일을 저장하는 방법에 대해서 정리해보겠습니다. 1. Android의 파일저장공간 안드로이드는 파일을 어디에 저장할 수 있을까요? 안드로이드에서의 파일저장공간은 크게 두가지로 나뉘어 지는데요. internal(내부)과 external(외부) 두가지입니다. 이것은 안드로이드 초기부터 microSD카드를 확장할 수 있도록 내부와 외부SD카드 공간을 분리하였기 때문입니다. 요즘은 아이폰처럼 일체형에 확장이 않되는 폰도 많지만 말이지요. 2. Internal Storage vs External Storage 그럼 내부와 외부는 프로그래밍 적으로 어떻게 다를까요? 2-1. 내부저장공간 (Internal Storage) 우선, 내부저장공.. 2017. 1. 8.
Java IO에서 InputStream, OutputStream, Reader, Writer Java에서 IO(Input/Output)라는 것을 하게 되면 InputStream, OutputStream, Reader, Writer 를 사용하게 되는데요. 오늘은 이들에 대해서 기본적인 것들을 정리해보려고 합니다. 1. Stream or Reader, Writer? 자바 IO는 입출력에 관해, 크게 두가지로 나눌 수 있습니다. 하나는, 바이트 단위로 입출력을 하는 Stream이구요, 여기엔 InputStream과 OutputStream이 있습니다. 다른 하나는, 2바이트인 문자단위 입출력을 하는 Reader, Writer입니다. InputStream과 Reader가 입력을, OutputStream과 Writer가 출력을 담당하므로, 두 개씩 묶어서 보도록 하겠습니다. 2. InputStream, R.. 2017. 1. 7.
Singleton 패턴에 대해서 앱 개발하면서 Singleton패턴을 종종 사용하게 되는데요.특히나, Preference사용할 때나, Application 클래스를 상속받아 Context를 얻어올때 사용했었네요.오늘은 이 Singleton 패턴에 대해서 정리해보려고 합니다~. 1. Singleton 패턴? 싱글턴 패턴은 해당 객체를 하나만 만들고, 언제든 그 유일한 객체에 접근하도록 하기위해 사용하는데요. 유일 무이한 객체를 만들기 위해서,생성자를 Private으로 선언해서, 생성자에 바로 접근하지 못하도록 하고,getInstance같은 메소드를 만들어서,객체가 미리 만들어져 있는지 체크한 후에,이 객체가 존재하지 않을 경우에만 생성자를 사용해서객체를 만든다는 겁니다. 아래 코드가 전형적인 싱글턴 패턴를 사용한 코드입니다.그런데, 위와.. 2017. 1. 6.
Android 에서 원형, 사각형 이미지 로딩할 때는 Glide 네트워크로 이미지 받아올 때, 어떻게 하세요? 저는 구글이 인수한 BumpTech의 Glide를 쓰는데요. 사용하기도 매우 편리하구요. 속도도 상대적으로 여타 이미지라이브러리보다 빠르다고 합니다. 오늘은 이 Glide를 정리해 보겠습니다. 1. 라이브러리 설정 항상 시작은 라이브러리 디펜던시 설정부터죠. glide검색해서 bumptech에서 만든 글라이드 선택해주고 가겠습니다~. 혹은 직접 build.gradle에 compile 'com.github.bumptech.glide:glide:3.7.0'을 직접 넣어주셔도 됩니다~. 2. 먼저 xml부터 준비하기 Java파일에서 Glide로딩해서 쓰기전에, xml로 레이아웃부터 준비해놓고 갈께요. 상단에 버튼이 있고, 그 밑에 이미지가 로딩되서 보이도록 하겠습.. 2017. 1. 3.
Android 앱 내에서 구글플레이 상세보기로 이동 링크 안드로이드 앱을 만들다 보면, 만든앱의 구글플레이 사이트로 유저를 이동시켜야 할 때가 있습니다. 예를 들면, 앱 업데이트가 필요할 때인데요. 앱의 버전을 체크해서 낮은 버전에 대해서 PlayStore로 이동시켜야 할때도 있구요, 사정상 강제적으로 업데이트를 시켜야 할 때도 있습니다. 혹은, 타 앱에 광고로 링크를 달거나, 웹사이트에 링크를 달 수도 있겠네요. 참고로, 앱내에서 링크를 걸어줄 때와, 웹사이트에서 링크를 걸어줄때의 주소가 다른데요. 앱에서 링크를 걸 때부터 알아보겠습니다. 1. App내에서 링크를 걸 때 아래 이미지와 같은 형식으로 넘겨주어야 플레이스토어의 특정앱의 상세페이지로 갈 수 있습니다. 이 때 필요한 것이 바로 입니다. 실제로 필요한 링크주소는 다음과 같습니다. >> market:/.. 2017. 1. 1.
Android 마켓에 출시된 앱 업데이시 App 버전 관리 안드로이드 마켓에 앱을 출시하고 나서 몇개월이 지나고 나서는, 시장이나 유저환경에 맞추어 업데이트가 필요한데요. 코딩을 잘해서 앱을 업데이트 해주고, QA도 해주며, Proguard설정도 해야하지만, 앱을 올리기전에, 버전 정보를 수정해 해주는 것을 하지않으면 앱을 올릴수가 없게되니, 버전관리는 꼭 알아둬야 하는 부분이라고 생각해요. 오늘은 버전관리에 대해서 간단하게 정리해보고자 합니다. 1. Build.gradle (app레벨)에서 버전 관리하기 버전관리를 하기 위해서는 App 레벨의 build.gradle파일로 가야합니다. 코드를 보시면 중간정도의 위치에 아래와 같이 VersionCode와 VersionName이 있는데요. 이 두가지가 바로 버전관리에 필수적인 것들입니다. 2. VersionCode .. 2017. 1. 1.
Android 에서 Button 눌렸을 때 이미지 변경 방법 Android에서 버튼작업을 하면, 체크박스가 눌렸을 때나, 버튼을 눌렸을 때, 버튼의 컬러나 상태등이 변하게 해서 유저가 알 수 있도록 해야 하는데요. 오늘은 버튼의 이미지를 상태에 따라 변경하는 방법에 대해서 정리해보았습니다. 1. 두 가지 상태의 버튼 이미지 준비 우선 변경할 이미지가 필요하겠죠. 저는 이렇게 두가지 이미지를 체크박스를 위해서 준비해놓았습니다.버튼을 만들고자 하신다면, 보통은 9Patch이미지가 필요할 것 같네요. 2. Selector XML파일 만들기 두 가지 상태의 이미지를 정의하는 Selector XML파일을 res>drawable에 만들텐데요. drawable폴더위에서 오른쪽 마우스 버튼을 이용해서 new> Drawable Resource File을 선택합니다. 파일의 이름을.. 2016. 12. 30.
안드로이드에서 Retrofit + SimpleXmlParser 사용하기 공공데이터 앱을 만들려고 API를 들여다보면, XML을 다뤄야 하는 경우가 많습니다. 특히나, JSON이 지원된다고 적혀있지만, 어떻게 하면 JSON으로 받을 수 있는지도 나와있지 않는 경우도 종종 있구요;;. 오늘은 이럴때 필요한 XML파싱에 대해서 정리해 보겠습니다. 제가 계속 적용해오고 있는 Retrofit + OKHTTP와 RxAndroid의 조합에 SimpleXML을 컨버터로 사용해 파싱해 보겠습니다. 참고로, Retrofit은 SimpleXML에 대해서만 컨버터가 제공되고, 구글에서 추천하는 XMLPullParser에 대해서는 컨버터가 제공되지 않고 있습니다~. 1. XML분석 http://www.w3schools.com/xml/note.xml 에서 제공해주시는 매우 간단한 형태의 xml을 분.. 2016. 12. 26.
Android 에서 Activity로 Object넘겨줄 때엔 Serializable Activity로 데이터를 넘기고 싶을 때, Intent로 PutExtra()메소드를 사용하여 데이터를 넘기는데요. 넘길 데이터가, 스트링 한두개가 아닌 경우도 있습니다. 예를 들면, 데이터 클래스가 다음과 같은 경우죠. 물론, 이런 데이터들 서버에서 받아서, 만능 ArrayList로 만들어서 넘길수도 있고, HashMap같은 게 필요할 때는 그것을 사용할 수도 있겠죠. 하지만, 당연하게도, Object를 넘길 수도 있습니다. 이 때, 데이터 클래스에서 implement하면 되는 것이 바로 Serializable입니다. 1. Serializable 적용 적용은 어떻게 할까요? 네, implements Serializable 요거면 됩니다. 우리말로 직렬화 인데요. 자바객체를 전송할 때, 다시 복원할 수 .. 2016. 12. 26.
RecyclerView 로 listview 정복 Part.2 #리스트 아이템 클릭 이전글에서 RecyclerView로 리스트를 만드는 것에 대해서 정리해보았었는데요. 오늘은 만든 리스트를 유저가 터치할 수 있고, 그에 대해 간단하게 토스트팝업을 띄우는 것에 대해 정리해보겠습니다. 참고로 리스트뷰 만드는 방법에 대해서는 아래 링크에 정리되어 있습니다~. >> RecyclerView 로 listview 정복 Part1 1. 리스트 한줄 클릭시 반응하기 먼저 개발할 시나리오를 정리해보면 다음과 같습니다. 리스트에 있는 여러개의 줄중 하나의 줄 전체를 유저가 클릭하면, 터치한 줄의 데이터를 받아와서, 토스트 팝업을 띄운다. 그럼 아래에서 구현하면서 정리해보겠습니다. 1-1. 유저가 터치하는 것을 누가 알까? 유저가 터치했는지 어떻게 알수있을까요? 유저는 뷰를 터치한 것이고, 뷰는 뷰홀더에 있.. 2016. 12. 25.
안드로이드 에서 쓰는 핫한 DB, Realm Part1 안드로이드에서 쓰는 데이터베이스로 SQLite도 있지만, 요즘엔 Realm도 많이들 쓰시는 것 같아서, 직접 사용해보면서, 정리해보았습니다~. 1. 라이브러리 설정 Realm은 설정하는 것이, 일반 다른 라이브러리들하고는 약간 다른데요. 아래 보시는 것과 같이, build.gradle은 두가지가 있습니다. Project레벨의 build.gradle과 App레벨의 build.gradle 인데 각각 다르게 설정을 해주어야 합니다. 먼저 Project레벨부터 보시죠. buildscript의 레벨의 dependency에 설정부터 해주겠습니다. >> classpath "io.realm:realm-gradle-plugin:2.2.2" 그리고 나서 App레벨에서도 설정해줍니다. 맨 상단에 이렇게 추가하면 됩니다. >.. 2016. 12. 24.
JAVA Interface 안드로이드를 위한 자바 인터페이스 #다중상속 #콜백 오늘은 안드로이드를 위한 자바의 Interface를 정리해볼려고 합니다. 참고로 여기서 말하는 Java의 혹은 android에서 사용하는 Interface는User Interface, 즉 UI의 Interface가 아닙니다.개발자의 코드와 생성한 객체간의 interface의 역할을 의미합니다.음... 추상적이라 잘 않와닿으니,, 쓰임새를 보면서 알아보기로 하겠습니다. 안드로이드와 관련해서 Interface가 필요한 경우가 여러가지가 있겠지만,크게 두가지를 짚고 가려고 합니다.바로, 다중상속이 필요할 때와 콜백으로 사용할 때인데요. 1. 다중 상속이 필요할 때 사실 말이 어패가 좀 있는것이, 정확히는 다중 상속이 아니라, 다중 구현(implements)을 하는 것입니다.특히나 다중 상속이 않되는 자바의 클.. 2016. 12. 21.
Android 라인(수평선, 수직선) 그리기 안드로이드 UI작업을 XML에서 하다보면, 별것아닌데, 필요한 것이 있죠. 바로 1px짜리, 혹은 2px짜리 라인입니다. 이걸 이미지로 한다는 것은 너무나 귀찮은 일이죠. 1. 수평선 그리기 위와 같이 View를 이용해서 쉽게 그려낼 수 있습니다. 2. 수직선 그리기 사실 이건 특별할 게 없습니다. width와 height만 원하시는 길이로 잡아 주시면 되거든요. 별거 아닌 팁중 하나인 라인 그리기 정리해보았습니다. 추후에 코드를 이용해 동적으로 추가하는 것도 정리해볼 생각입니다~ 2016. 12. 20.
RecyclerView 로 listview 정복 안드로이드, 아니 모바일 UI의 작업의 핵심은 역시 ListView인것 같습니다. 앱을 만들면서 ListView를 만들지 않은 적은 없었는데요. 오늘은, 이 RecyclerView를 한번 정리해볼려고 합니다~. 최종적으로 만들려고 하는 형태는 다음과 같습니다. 1. 라이브러리 설정 역시나 Library부터 설정하고 가겠습니다. Dependencies에서 recyclerview로 검색하셔서 파란색 하이라이트된 라이브러리를 선택해 추가하시면 됩니다. Gradle파일에 직접 추가하시려면 하단에 compile 'compile 'com.android.support:recyclerview-v7:24.2.0'' 를 추가해주세요~ 그럼 저희가 구현해야 할 것들이 나옵니다. onCreateViewHolder부터 보겠습니.. 2016. 12. 20.