목록Programming/Android (25)
MyCloud
ColorFilter로 ImageView에 어두운 효과주는 방법 보통 이런 형태의 카드뷰를 많이 사용하게 되는데 흰글씨와 흰색 사진이 겹쳐 글씨가 잘 안보이게 됩니다.그래서 사진을 좀 어둡게 처리하고 싶을 때는 어떻게 해야 할까요?Glide로 이미지를 불러온 뒤에 Glide-Transformation으로 Color를 입혀도 되지만 더 간단한 방법이 있습니다. 바로 ColorFilter를 사용하는 방법입니다. 공식 레퍼런스는 아래의 링크를 참조하시면 됩니다.https://developer.android.com/reference/android/graphics/drawable/Drawable.html#setColorFilter(int, android.graphics.PorterDuff.Mode) PoterDu..
Fragment에서 findViewById error Fragment에서 바인딩을 위해 findViewById() 함수를 사용한다면 다음과 같은 오류가 발생합니다. java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference 이유는 아직 inflation 이전의 View에 컴포넌트를 부르는 함수를 호출하기 때문에 널 포인터 오류가 나는 것 입니다.getView() 메서드를 통해 해결하는 방법도 있지만 가장 깔끔한 방법은 View 객체를 이용하는 것 입니다. public class SearchFragmen..
Custom CardView CardView는 롤리팝 버전부터 추가되었으며, 많이 활용되는 뷰 컴포넌트입니다.UI를 구성하다보면 복잡한 구조를 재사용해야 할 때가 있는데,이때 커스텀 뷰를 활용하면 쉽게 해결할 수 있으며, 코드의 분리를 통해 가독성도 높일 수 있습니다.아래의 코드는 이전의 카드뷰 포스팅 예제와 이어지는 코드입니다.참고 : http://swalloow.tistory.com/72 1.먼저 커스텀 카드뷰의 레이아웃을 만들어야 합니다.* CardView 자체가 FrameLayout을 상속받은 ViewGroup이므로 LinearLayout 아래에 정의할 필요가 없습니다. 2.이제 카드뷰를 대신할 커스텀 자바 클래스를 생성합니다.커스텀 카드뷰는 xml에 정의되어 있는 뷰 컴포넌트들을 하나로 묶은 뷰..
Daum Maps API 처음 Daum 지도 API를 사용하시게 되면 여러 문제를 만날 수도 있습니다.그래서 Daum 지도 API를 연동하면서 겪은 문제를 정리하려고 합니다. 1.우선 키 발급받는 과정입니다. 간단한 과정이라 API 페이지에 따로 언급이 없습니다. http://developers.daum.net/console/위 링크의 다음 개발자 페이지의 좌측 상단에 앱 만들기 버튼을 눌러 내 프로젝트를 생성해야 합니다.그리고 나면 자동으로 키가 발급됩니다.이 때 안드로이드 패키지 명은 com.company.projectName 형식으로 들어가면 됩니다.* 잘 모르겠다면 AndroidManifest.xml 에 있는 package = " " 부분을 보시면 됩니다. 2.라이브러리를 추가해야 할 때 가이드 ..
TabLayout 과 ViewPager TabLayout은 안드로이드 서포트 디자인 라이브러리에 있는 클래스입니다.이전에는 탭에 대한 애니메이션, 변화, 디자인을 직접 구현했다면 이제 TabLayout 내에 있는 속성만으로 쉽게 컨트롤 할 수 있습니다.자주 사용하는 xml 속성은 다음과 같습니다. XML Attributes Description design:tabGravity 탭의 정렬 방식을 선택 fill : 너비를 모두 같게 표시 center : 가운데 정렬하여 표시 design:tabMode 탭의 표시 방식을 선택 Fixed : 모든 탭을 한번에 표시 Scrollable : 일부 탭만 표시, 나머지 스크롤 design:tabIndicatorColor 현재 선택된 탭에 대한 색 지정 design:ta..
support.v7.widget.CardView 안드로이드 CardView 는 support.v7.widget 에 속한 라이브러리 입니다. 리스트 뷰를 보여줄 때 카드 레이아웃을 사용한 형태를 많이 구현했습니다. 하지만, 직접 그림자도 그려야 하고, 틀을 만들어야 하는 어려움이 존재했습니다. 이를 해결하기 위해 SDK 21버전부터 CardView가 추가되었습니다. CardView는 FrameLayout 클래스를 확장한 형태입니다. 둥근 모서리, 배경과 그림자가 추가된 FrameLayout 이라고 보시면 됩니다. 그리고 CardView를 사용하는 가장 중요한 이유, 깔끔하고 이뻐서 ! 일반적으로 CardView는 리스트 형태로 보여주기 때문에뷰에 대해 재사용이 가능한 RecyclerView와 함께 사용됩니..
ViewHolder 패턴의 등장 뷰 홀더(ViewHolder) 패턴은 리스트 뷰의 유연한 동작을 위해 나타나게 되었습니다. 예를 들어, 리스트가 1000개 있다고 생각해보겠습니다. 왼쪽과 같은 리스트 뷰는 TextView 3개로 구성되어 있습니다. TextView를 생성하기 위해 매번 findViewById()를 호출해야 할 것이고, 3000번 호출된다면, 이는 엄청난 성능 오버헤드를 불러오게 됩니다. 아마 스크롤 내릴 때마다 매우 느린 반응속도를 보일 것입니다. 이를 해결하기 위해 ViewHolder 패턴이 나타났습니다. ViewHolder 패턴의 원리는 각 View 객체를 ViewHolder 에 홀드 시키는 것입니다. 이러한 방법으로 리스트 뷰에서의 성능을 개선할 수 있습니다. ViewHolder 패..
사실 지금까지는 수정된 코드를 GitHub 폴더에 복사한 다음,GitHub Desktop 툴을 이용해서 Commit - Push 하는 과정을 거쳤습니다. 하지만 너무 번거롭고 불편하다고 생각해서,안드로이드 스튜디오 내에 있는 기능을 통해 Git에 연동해보았습니다. 1.먼저 GitHub에서 새로운 Repository를 생성합니다.아래의 Initialize this repository with a README 를 선택하시면gitignore와 license 파일을 함께 생성할 수 있습니다. 2.그리고 만들었던 Repository의 우측 상단에 있는 Clipboard를 눌러 주소를 복사합니다.다음 원하는 폴더에서 Git bash를 열고 git clone address 명령어를 실행합니다. 3.이제 안드로이드 스..
간단한 로그인 화면 만들기 - 자동로그인 기능 이전에 만들었던 화면에 자동로그인 기능을 붙여보도록 하겠습니다.이 예제에서는 자동로그인을 위해 오직 SharedPreference만 사용했지만나중에 아이디와 비밀번호는 SQLite에 저장되도록 변경할 예정입니다.화면은 다음 링크를 참고하시면 됩니다. http://swalloow.tistory.com/58 SharedPreference에 대한 정보는 http://swalloow.tistory.com/59 에서 확인하실 수 있습니다.먼저 java 파일로 가서 사용할 객체를 생성합니다.EditText idInput, passwordInput; CheckBox autoLogin; SharedPreferences pref; SharedPreferences.Editor..
간단한 로그인 만들기 - 화면 기본적인 레이아웃에 대해 공부했으니 간단한 로그인 화면을 만들어 보겠습니다.먼저 빈 프로젝트를 생성하시고 xml 파일로 이동합니다.사용한 액션바의 스타일은 Theme.AppCompat 입니다. 자유로운 화면 구성을 위해 RelativeLayout을 선택하고이메일과 비밀번호를 입력할 EditText를 2개 생성합니다. 각 입력텍스트의 가로는 300dp, 세로는 50dp로 설정하고android:layout_centerHorizonal="true"를 통해 가운데 정렬합니다.그리고 힌트메세지로 Email과 Password를 넣습니다.RelativeLayout의 정렬에 대해 잘 모르시는 경우 아래의 표를 참고하시면 됩니다 ! 속 성 설 명 layout_alignParentTop 부모..