본문 바로가기

반응형

안드로이드

Android recyclerView state save 안드로이드 리사이클러뷰 상태 저장 (onSaveInstanceState, onRestoreInstanceState) 안드로이드 리사이클러 뷰를 사용하다 보면 스크롤 중인 상태를 저장하는 방법에 대해서 고민을 안할 수 가 없다. 고민끝에 position 값을 저장해 두었다가 scrollToPosition으로 맞춰볼까 했지만 너무 인위적인 방법인거 같다는 지울 수 없었다. 그렇게 찾다가 발견한 방법!! onSaveInstanceState를 이용하여 상태를 저장하는 방법을 사용해 보기로 했다. 1. 리사이클러 뷰 상태 저장Parcelable recyclerViewState; recyclerViewState = recyclerView.getLayoutManager().onSaveInstanceState(); LayoutManager를 불러와 Parcelable 변수에 상태를 Bundle형태롤 저장해 놓기!! 2. 리사이클러 .. 더보기
[Android] android GridView Auto-Column Span public static class GridAutofitLayoutManager extends GridLayoutManager { private int mColumnWidth; private boolean mColumnWidthChanged = true; public GridAutofitLayoutManager(Context context, int columnWidth) { super(context, 1); setColumnWidth(checkedColumnWidth(context, columnWidth)); } public GridAutofitLayoutManager(Context context, int columnWidth, int orientation, boolean reverseLayout) { .. 더보기
[Android] 안드로이드 Toolbar menu 버튼 만들기 위와 같이 Android 툴바에서 많이 쓰이는 기능 중 하나인 메뉴 버튼은 만들기가 아주 쉽고 많은 자료가 있지만 나의 기록을 위해 써본다. 1. MainActivity.xml 만들기 CoordinatorLayout으로 뷰 그룹을 만들고 Toolbar는 AppBarLayout을 사용하여 만든다. 여기서 FrameLayout이 Toolbar영역을 침범하지 않기 위해서 "app:layout_behavior="@string/appbar_scrolling_view_behavior"]을 설정해 준다 2. 메뉴 XML만들기 메뉴는 res폴더에서 클릭만으로도 쉽게 만들 수 있다. 폴더를 만들고 그 menu_main.xml파일을 만들어 보자. 3. MainActivity.class 메뉴 등록 public class M.. 더보기
[Android] 안드로이드 커스텀 네비게이션 드로어 만들기(Custom Navigation Drawer) 안드로이드 앱 개발을 하다보면 필수적으로 사용하는 것이 네비게이션 드로어 일것이다. 머티리얼 디자인으로 넘어오면서 기본으로 제공해주는 네비게이션 드로워가 사용하기 쉽게 되어 있기 때문에 네비게이션 드로어를 생성하는데 큰 문제는 없을것이라 생각한다. 하지만, 나만에 드로어를 만들기 위해서는 조금에 수고가 필요한것은 사실ㅠㅠ 내가 하는 방법이 맞는 방법인지는 모르겠지만 일단 기록을 위해 남겨두기!! 1. 네비게이션레이아웃 만들기!! (MainActivity) 뭐... 코드 보면 쉽게 이해할 수 있으리라 생각된다. 여기서 중요한점은 1. fragment 부분을 CoordinatorLayout 밖에 위치 시켜야 한다는 점!!! CoordinatorLayout 말고 LinearLayout 사용해도 상관 없습니다... 더보기
[Android] 안드로이드 디바이스 해상도별 레이아웃 대응 라이브러리(ScalableLayout) 안드로이드 개발을 하다보면 가장 신경쓰이는 부분 중 하나는 바로 해상도 별 레이아웃 대처 방안일 것이다. 처음 개발을 하면서 비율을 맞출때는 weight를 주어 비율을 맞추었다. 그러나 비율은 맞아도 텍스트 크기가 문제가 되고는 했다. 다음 방법으로는 손가락을 부지런히 움직이며 해상도 별 dimens를 따로 주는 방법도 사용해 보았으나 더 간단한 방법을 찾기를 원했다. 그렇게 구글링을 통해 알게된 해상도 사이즈별로 자동으로 크기를 조정해 주는 ScalableLayout라이브러리를 찾게 되었다. 우선 Github 주소는 https://github.com/ssomai/ScalableLayout 코드를 읽어보면 설명이 영어로 되어 있지만 전혀 어렵지 않게 되어있다. 영어가 어렵다면 https://github... 더보기
Android] GCM(Google cloud message) Python Server node.js Server, PHP Server, Client 참고 자료 안드로이드 GCM기능을 구현하기 위해서 여러 참고자료들을 확인해 보며 가장 좋았던 자료 공유해 드립니다. 1. 서버를 파이썬으로 구현하신분은 GCM서버 구현은http://growingdever.tistory.com/186를 참고하시면 될 것 같습니다. 2. 클라이언트의 경우에는(Node.js서버 포함)http://blog.saltfactory.net/android/implement-push-service-via-gcm.html를 참고하시면 많은 도움이 될 것입니다. 클라이언트 뿐만 아니라 node.js로 구현한 서버도 참고하실 수 있습니다.* 클라이언트 구성부분에서 이슈 사항입니다.(해당 글 댓글) - R.string.gcm_defaultSenderId 에러의 경우 Set Up Google Play Se.. 더보기

반응형