본문 바로가기

Android

(16)
[Android] setOnClickListener(this)는 왜? Android 에서 view에 대한 onClick 처리를 하는방법은 여러가지가 있다. 1) xml layout 파일에서 android:onClick="" 을 지정하는 방법2) view,setOnClickListener( new View.OnClickListener{ ... } ) [setOnClickListener에 익명클래스를 사용하는 방법]3) class에 View.OnClickListener를 implements 한 뒤 setOnClickListener(this) 를 사용하는 방법 나는 주로 개발할 때 2번과 3번의 방법을 자주 사용한다. 그 중 3번의 방법에 대해서 출근하다가 갑자기 setOnClickListener(this) 에서 this를 넣는데 어떻게 onClick() 으로 콜백이 받아지지?..
[Android Studio] 브레이크 포인트(Breakpoint) 한번에 지우기 개발을 하고 디버그를 하면서 하나 두개씩 찍어주던 브레이크 포인트는 당시에는 유용하지만 귀차니즘으로 매번 포인트들을 지워주지 않아서 다른 디버깅을 할 때 원치 않는 곳에서 브레이크가 걸리는 상황이 종종 발생하고는 한다. 안드로이드 스튜디오에서는 이런 상황 등에 쓰라고 만든건진 모르겠지만 아무튼 브레이크 포인트들을 한번에 지울 수 있는 기능이 있다.지금 스튜디오가 켜져있다면, Control + Shift + F8 키를 눌러보자 그럼 위와 같은 창이 하나 뜨고 주황색 박스 안에 있는 부분들이 내가 지금까지 브레이킹 포인트를 찍어둔 지점들이다.최상위 Java Line Breakpoints 를 체크 해제시켜서 모든 포인트를 전체 제거 할 수 있다.
[Proguard] 라이브러리 룰 모음집 · 프로가드 라이브러리 Rules Github 앱을 마켓에 출시 할때 적용해야 할것중 하나 Proguard.이번에 Proguard를 적용하다가 유용한 사이트를 알게되서 이곳에 적어 놓는다. 1 라이브러리 룰 추가 귀찮다! 앱을 만들다 보면 AWS, Google, Glide ... 등 여러가지 라이브러리를 사용하게 되는데보통 프로가드 룰을 추가해주어야 하는 번거로움이 있다.라이브러리가 공유되는 Github 마다 룰이 적혀 있긴 하지만이 룰들을 한곳에 모아놓은 Github이 존재한다. - Link https://github.com/krschultz/android-proguard-snippets 이 링크를 들어가면 룰들이 정리가 되어있어서 여러가지를 한번에 추가하기에 유용하다. * 룰을 추가 하기 전에 라이브..
[Glide] 3. Image Resize Glide의 image resize의 기능에 대해서 알아보겠다. 직접 서버에서 size를 미리 정의를 해서 받아오는 이미지를 제외하고는 웹에서 불러오는 이미지의 크기는 전부다를 경우가 많다. 극단적으로 어쩔때는 100*100의 이미지가 넘어오는가 하면 2000*2000의 이미지를 받아보게될 수도 있다. 물론 ImageView 사이즈에 맞에 알아서 잘 표시 되도록 되겠지만 100*100과 2000*2000의 이미지 용량은 꽤나 차이가 날 수 있다. 이를 대비하여 이미지의 사이즈를 imageView에 표시 되기 전에 resize를 해줄 수 있는 기능이 있다. 1. override일단 .override()는 아래와 같이 사용한다.Glide.with(this) .load(url) .override(int, in..
[Glide] 2. Glide의 여러가지 기능들 Glide는 이미지를 단순 표시해 주는것 뿐만 아니라 많은 기능들을 포함하고 있다.그중 몇가지를 포스팅 해보겠다. 1. placeholder웹에서 이미지를 불러오는동안 표시해줄 이미지를 지정할 수 있다.Glide.with(this) .load(url) .placeholder(R.drawable.holder_image) .into(imageView);2. error웹에서 이미지를 불러오기 실패 했을때 표시해줄 이미지를 지정할 수 있다.Glide.with(this) .load(url) .error(R.drawable.error_image) .into(imageView);3. crossFade 이미지를 불러와서 표시될때 Fade duration값을 지정해 줄 수 있다. 디폴드 값은 300으로 지정되어 있어 아..
[Glide] 1. 이미지 라이브러리 Glide 안드로이드에서 자주 사용되는 이미지 라이브러리인 Glide에 대해. Glide는 Future Studio 에서 만든 오픈소스 이미지 라이브러리로 많은 개발자들이 사용하고 있다.특히, 웹에서 호스팅된 이미지를 호출해서 이미지 뷰에 띄워주기에 적합한 라이브러리이다. 첫번째 항목에서는 Glide를 사용하는 방법에 대해서 올려보겠다. 1. 프로젝트 단위의 build.gradle에서 라이브러리를 불러오기 위한 mavenCentral() 저장소를 지정해주고 repositories { mavenCentral() // jcenter() works as well because it pulls from Maven Central } 2. 어플리케이션 단위의 build.gradle에서 의존성을 추가해준다.dependencie..
[TIP] viewpager에서 현재 보여지는 페이지 알아내기 fragment로된 viewPager를 사용하다 보면 현재 페이지가 보여진 상태인지 알아야 할 때가 있다. 여러가지 방법이 있겠지만 그중 fragment 에서 제공하는 메소드가 있다. - setUserVisibleHint() fragment를 상속받은 fragment에서, 안드로이드 스튜디오를 기준으로 컨트롤+O를 눌러 setUserVisibleHint()를 @overide 받는다 @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); } 오버라이드를 하면 위와 같은 형태를 띄는데 isVisibleToUser 변수로 현재 페이지의 viewing 여부를 알 수 있다..
[TIP] String 빈문자열/null 검사하기 자바에서 String 변수를 사용하기 전에 미리 변수의 상태가 null 또는 "" (빈 문자열) 인지 검사를 해야 할 필요가 있다. 지금까지는 이런식으로 null 검사와 빈 문자열 검사까지 해주고 있었다. 그러나 이런식으로 검사를 하면 equel("")에서 String 빈 객체를 생성하게 되는 걸 알게 됐다. 찾아본 결과 TextUtils 클래스를 사용하면 좋다고 한다. TextUtils에 isEmpty 메서드를 사용하면 되는 데 사용법은 다음과 같다. isEmpty 메서드의 내부를 살펴보면 이렇게 생겼는데 CharSequence를 전달받아 null 검사와 길이 검사까지 해준다. 전달받은 값이 null이거나 길이가 0이면 ( "" 이면 ) true를 반환하고 아니면 false를 반환하는 메서드이다.