목록내가 자꾸 까먹어서 쓰는 개발 이야기/Android (13)
FILife
왓챠(http://watcha.net) 웹사이트에서 영화 썸네일에 마우스 커서를 올리면, 위와같이 추가정보를 보여주는 레이어가 보기좋게 덧씌워진다. 이것을 Android의 GridView로 구현했다. 따로 페이지 버튼을 두지 않고, 스크롤이 끝까지 가면 추가 데이터를 로드하는 LazyLoad 방식을 선택했다. 그리고 삽질은 시작됐다. 1. 먼저 각각의 item은 FrameLayout 안에 배치하여, 레이어가 쉽게 나타날 수 있도록 구성했다. 2. 1의 FrameLayout을 inflate 하는 CustomLayout 클래스를 만들었다. 자체적으로 onClickListener를 가지고 있다. 3. 2의 CustomLayout을 데이터 수만큼 생성하여 Collection에 넣었다. 4. BaseAdapate..
ViewFlipper 등에서 사용하면 매우 유용할 것 같다. getIdentifier의 세번째 인수에는 getPackageName()이 유용할 듯 싶다. for(int i=0; i
먼저 네비게이션 드로어를 적용하는 방법은 아래의 두 강좌를 보면 된다. 네비게이션 드로어에 머티리얼 디자인 적용하기 : http://androidhuman.com/559 액티비티 전체를 덮는 네비게이션 드로어 만들기 : http://androidhuman.com/560 여기까지 완료했는데, 드로어 최상단의 이미지가 상태바만큼 잘리고 있었다. 검색을 하루종일 한 결과, 구글에서 제공하는 ScrimInsetsFrameLayout을 Drawer의 rootView로 넣고, 그 안에 기존에 작성 해 두었던 드로어의 xml을 넣어주면 된다. 1. https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/ios..
이러한 App을 만들고 있다. 웹서버에서 JSON 형태의 "목록" 받음 -> parsing 해서 데이터화 -> gridview에 뿌려줌 별시리 어려울게 없는 구조인데, 구현하는데 애를 먹었다. 바로 이 두 조건 때문이었다. 1. Android의 MainThread에서는 네트워크 기능을 사용할 수 없다. (NetworkOnMainThreadException 발생) 2. Android의 Thread 내부에서는 UI를 조작할 수 없다. (CalledFromWrongThreadException 발생) 이 요소들이 섞이니 아주 the love. 일단 GridView에 들어갈 children은 custom view로 구현 해 두었다. (이러는게 편리) Fragment 에서는 아래와 같이 작성했다. final Arr..
메뉴키 이벤트는 onKeyDown override 이벤트 핸들러로는 캐치가 되지 않았다. AVD에서는 VOLUME_DOWN으로 표시가 됐다. (대체 왜..) 검색 도중 알게된것은 dispatchKeyEvent() override 메서드로 처리가 가능하다는 것이었다. 설명: http://developer.android.com/reference/android/view/Window.Callback.html#dispatchKeyEvent(android.view.KeyEvent) drawableLayout과 함께 onPrepareOptionsMenu() 로 시도했다가 무진장 꼬였다. 자세한 내용(샘플코드)는 출처에 있다. 출처: http://jo.centis1504.net/?p=962
http://ismydream.tistory.com/123
intelliJ 계열 IDEA에서 subversion 연동 시 ignore 되어야 할 항목들은 아래와 같다. gradle : 안드로이드 빌드 리소스build : ".idea : IDEA용 인덱싱 및 설정 파일들*.iml : ".DS_Store ( => for mac only) 출처: http://stackoverflow.com/a/16941872/4531618
http://androidhuman.tistory.com/561 구성은 아래와 같다고 한다.
안드로이드 강좌나 책을 보면 이미지를 전부 drawable에서 가져다 쓰는데, 막상 안드로이드 스튜디오를 설치 해 보면 그 폴더는 비어있다. 해서 찾아보니, 커스텀 이미지는 모두 drawable에, 앱 아이콘만 mipmap 폴더에 넣는거라고 한다. 출처: http://stackoverflow.com/questions/28065267/mipmap-vs-drawable-folders
xml 태그는 여는 태그와 닫는 태그로 구성되어 있는데, 만들어진 태그를 다른 태그로 변경하는 경우 두가지를 각각 수정 해 주어야 해서 다소 불편할 수 있다. 이런 경우 양쪽 태그 중 한쪽을 수정 한 상태에서 커서를 이동시키지 않고 shift+F6을 눌러주면 짝이 되는 태그가 바로 변경 된다. 동일 제품군인 PhpStorm 등에서도 마찬가지로 사용할 수 있을 것으로 생각된다.
왜 이런지 모르겠지만 Android Studio에서 Button 객체를 추가하고 텍스트 값을 설정하면 전부 대문자로 표시된다. 레이아웃 xml에서 해당되는 버튼 태그 속성에 다음을 추가한다. android:textAllCaps="false" 출처: http://stackoverflow.com/questions/24880388/cannot-lower-case-button-text-in-android-studio
이클립스의 ctrl+shift+O 를 통한 자동 import 기능은 편리하고 친숙하다. Android Studio의 경우에도 이와 같은 기능을 제공하지만, 기본적으로 비활성화 되어있는 상태다. ctrl+alt+S (jetbrains의 IDE들은 공통적으로 같은 단축키가 사용 됨)을 눌러 설정으로 들어간다. 좌측 분류에서 IDE Settings > Editor > Auto Import 로 진입하면 Java 카테고리에 체크되지 않은 항목이 두 개 보인다. Optimize imports on the fly / Add unambigous imports on the fly 의 두 항목인데, 모두 체크 해 주면 활성화 된다. ctrl+shift+O 등의 단축키 입력 없이 왠만한 건 스스로 import를 추가 해 준다.
외부 라이브러리를 가져다 쓰는 경우 주로 발생하는 것 같다. 빌드를 해도 해도 시작과 동시에 break!! 중국어 사이트에 영어로 집필 된 자료(...)에서 해법을 찾았다. 1. 프로젝트의 libs 폴더를 가차없이 걍 삭제. 2. 프로젝트를 우클릭 해서 Build Path > Configure Build Path > Libraries로 들어가 외부 라이브러리의 android-support-v4.jar 파일을 추가 3. Order and Export 탭으로 가서 android-support-v4.jar의 체크박스에 체크 4. Project Clean 출처: http://www.xhuangzhihui.cn/yjdt/2014/6/20/02967.html