Android 32

Deep linking, Part 1. Android

1. 여는글 요즘 많이 대두가 되고 있는 Deep linking에 대해서 알아보도록 합시다. 그 첫번째 시간으로 안드로이드에서 Deep linking을 하는 방법에 대해서 알아보도록 합시다. 2. 단계1: Deep linking 추가하기 Deep linking에 의해서 실행될 Activity를 선택하고, Manifest파일에서 해당 Activity 하위에 다음의 Intent를 추가하면 됩니다. 이외에 스키마를 잘 조정하면 자신만의 deep linking 주소를 생성할 수도 있습니다. 3. 단계2: 앱과 웹을 연결 ㄱ. 구글 개발자 콘솔에서 연결할 어플리케이션을 선택합니다. ㄴ. 왼쪽 탭에서 Services & APIs 메뉴를 선택합니다. ㄷ. 하단부에 APP INDEXING FROM GOOGLE SEAR..

[Android] Custom Radio Button / Multi-line Radio Button

1. 들어가면서 오랜만입니다. 오랜만에 약간의 여유시간이 생겨서 이렇게 포스팅을 하게 되었습니다. 요즘 주된 작업이 안드로이드개발이라서 주제를 안드로이드로 잡았습니다. 특히, 오늘은 안드로이드의 기본 컴퍼넌트들 중의 하나인 라디오버튼을 커스텀 하는 방법을 알아보려고 합니다. 기본적으로 라디오 버튼을 커스텀하는 방법에 대해서 알아보고, 라디오 버튼을 묶어주는 라디오 그룹의 제한 사항을 알아보도록 하겠습니다.. 2. 커스텀 라디오 버튼(Radio button custom) 기본적으로 라디오 버튼을 생성하는 코드는 아래와 같습니다. 이는 체크박스에서도 그대로 적용이 가능합니다. 기본적으로 생성된 라디오 버튼의 모습을 살펴보면 아래와 같습니다. 이 버튼을 살펴보면 사람들이 무엇을 하고 싶어할까요? 1) 글자 크..

[Android] get or set wrap content height

Android에서 wrap_content로 만든 뷰의 높이를 설정하거나 뷰의 높이를 얻어오는 소스코드이다. 기존에 소개했던 코드에서 약간의 변경 사항이 있다. 뷰에서 Margin값이 사용되었다면 Margin값만큼 기준이 되는 Width값을 줄여야 한다. 이를 반영한 코드가 아래의 코드이다. 아래의 코드는 높이 값을 가져오는작업을 한다. private int getHeightForWrapContent(Activity activity, View view) { DisplayMetrics metrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); ViewGroup.MarginLayoutPar..

[Android] Actionbar 메뉴 클릭 이벤트 / activity + fragment

1. 들어가면서 개발 일정에 밀리고 밀려서 점점 공을 들여서 글을 쓰는 빈도가 적어지고 있다. 살짝 반성중... 오늘은 Actionbar menu item(액션바 메뉴 아이템)을 컨트롤하는 방법에 대해서 알아보겠다. 액션바에 있는 메뉴가 Activity전체에 대해서 똑같이 움직이길 바랄때도 있을 것이고, 특정 Fragment마다 다르게 움직이길 바랄 수도 있다. 예를 들어서, 현재 액티비티 전체에서 검색은 공통적으로 움직이게 하고 싶지만, 공유는 각각 프레그먼트마다 다르게 움직이길 바랄 수 있다. 어떻게 하면 이 것이 가능할가? 이 글은 프레그먼트에 대한 개념이 잡혀있어야지 이해하기가 쉬울 것이라고 생각한다. 아래에 나와 있는 동작 로직 및 순서를 보면 그 해답이 보이기 시작할 것이다. 2. 프레그먼트에..

[Android] WebView fatal signal 11 (sigsegv) / glEndTilingQCOM: 0x502(Hardware Acceleration)

이번 글은 글의 형식에 제한받지 않고, 대략적인 정리 형태로 작성해보겠다. 일단, 웹뷰를 사용하다보면 어플리케이션이 갑자기 죽는 경우를 발견할 것이다. 그것도 대책없이 "fatal signal 11"이라는 단순명료한 에러메세지와 함께...특히, AVD나 Genymotion을 이용하여 테스트를 할때에는 발견되지 않는 에러이다. 이 에러를 해결하기 위해서 다양한 논의가 진행되고 있다.각각의 사람들은 예상되는 문제를 제기하고, 그에 대한 해결법을 이야기하였다. 나도 이 문제를 해결하기 위해서 수많은 구글링을 통해서 다양한 옵션을 적용해보았다. 그럼, 여러 사람들이 이야기하는 문제점과 각각에 대한 해결법을 생각알아보자.(물론, 이것은 여러분에게 해결책이 되지 않을 수 있다. 내가 해결한 방법은 맨아래서 다시 이..

[Android] Web-view를 위한 기본적인 세팅들 & Lint tool

1. Web-View에 대한 기본적인 세팅 - Web-view를 사용하기 위해서 기본적으로 뷰를 불러왔을때 세팅해줘야 하는 값들이 있다. 1) javascript 실행여부 2) default URL(실행시 켜지는 URL 설정) 3) 웹뷰를 실행할 때 사용할 브라우져 설정 ( 예제에서는 사용자가 지정한 브라우져가 실행되게 되어있다.) // web-view settings mWebView.getSettings().setJavaScriptEnabled(true);// java-script ok mWebView.loadUrl([YOUR_SITE_URL]); // to set first url mWebView.setWebViewClient(new WebViewClient());// web-view settings..

[Ruby on Rails & Android] GCM(Android Push) and Ruby On Rails 연동 Part 1.

들어가면서 안녕하세요. Bucket Place의 개발자 Cloud Travel입니다. 제목은 거창하게 "GCM과 Rails연동!"이라고 적어 놨지만, 실제적으로 따라하다보면 별거 없는 것 같습니다. 일단, 참조페이지로 http://susemi99.kr/?s=gcm 홈페이지를 참조 하였습니다. 실질적으론, Android Developer페이지에 있는 소스를 그대로 옮겨와서 사용해도 되지만, 띄엄띄엄 있는게 좀 짜증나서 찾게된 페이지가 http://susemi99.kr/?s=gcm 입니다. 사실 SNS(Simple Notification System, Amazon)를 사용하려고 했는데, 서버단에서 분기시켜주는게 더 간단하겠다고판단을 하여서 개개별로 개발을 하기로 해였습니다. 저는 Android쪽을 하기 때문..

Bucket Place 2014.06.17

[Android] ViewPager Problem in Fragment

[현재의 일반적인 안드로이드 코딩] Fragment를 지원하지만, Fragment 안에 Fragment가 들어 가지 못하는 버전이 있다.(진저브레드~아이스크림센드위치까지...) 현실적으로 키켓에 맞춰서 코딩을 하면 사용자수가 한 10%로 한정되기 때문에 이에 대한 대응을 해줘야 한다. Activity의 페이지 전환을 Fragment로 갈아치우는 형식으로 만드는 것이 대세인 세상이 되고 있다. [Viewpager Problem in Fragment] Fragment에서 ViewPager를 사용하려고 하면 다음과 같은 오류가 발생한다.가끔씩 Viewpager에서 스왑핑시 화면이 사라지는 것을 볼 것이다. (ViewPager 프로그먼트 사라짐) 영어로 검색한다면 viewpager fragment disappe..