안드로이드 28

BottomSheetBehavior 사용법 및 후기

회사 신규 서비스 프로젝트를 진행하면서 골머리를 앓게 만들었던 BottomSheetBehavior... 기본적으로 사용하는 이런 기능은 BottomSheetDialog와 BottomSheetBehavior가 있다. 회사 프로젝트는 바텀시트에서 지속적으로 스택이 쌓여야 하는 기획이므로 BottomSheetBehavior를 사용할수 밖에 없었다. 기본적으로 BottomSheetBehavior를 사용하는 방법이다. behavior_expandedOffset : 바텀시트를 끌어 올렸을때 Top영역부터의 마진값 behavior_fitToContents : 바텀시트 half를 사용할 것인지 유무 behavior_halfExpandedRatio : 바텀시트 half를 화면에서 몇퍼센트정도의 비율로 할것인지 beha..

안드로이드 FCM 푸시(1.프로젝트 셋팅 및 구현)

안드로이드 FCM 관련 글입니다. 구글에서는 예전부터 지속적으로 GCM이 아닌 FCM사용을 권고하였습니다. 그리고 안드로이드 신규 버전인 9.0파이버전부터는 GCM이 정상적인 작동을 하지 않습니다.(관련 링크) FCM프로젝트를 생성 및 푸시 테스트까지 진행해 보도록 하겠습니다. FCM관련 콘솔 홈페이지로 접속합니다(링크) 구글계정이 로그인 되어있는 상태에서 위의 링크를 클릭하면 아래와 같은 화면으로 진입합니다. 화면에서 프로젝트 추가를 클릭합니다. 다음부터는 스크린샷을 따라서 해주시면 되겠습니다. 아래 디버그 서명 인증서는 선택사항이며 꼭 하지 않으셔도 됩니다. 하지만 밑줄친 기능을 사용하실려면 등록하시면 됩니다. 위의 스크린샷에서 처럼 google-service.json 파일을 다운받은 뒤 현재 FCM..

안드로이드 ViewPager[Tutorial Sample]

안드로이드 ViewPager Sample입니다. Fragment를 이용한 ViewPager가 아닌 보통 앱에서 보여주는 튜토리얼로 쓰기 위한 Sample입니다. 기본적인 ViewPager를 사용하기 위해서는 ViewPager에 adapter를 넣어줘야 합니다. 그리고 PagerAdapter를 상속받은 클래스를 넣어주시면 될거같습니다. PagerAdapter를 상속받는 클래스를 만드실 경우 오버라이드 메소드 설명입니다. getCount() : PagerAdapter에서 관리할 갯수를 반환 instantiateItem() : ViewPager에서 사용할 뷰객체 생성 및 등록 destroyItem() : View 객체를 삭제 isViewFromObject() : 생성한 객체를 이용할 것인지 여부를 반환 1. ..

안드로이드 Mixed Content The page at was loaded over HTTPS

안드로이드 Webview를 이용하다 보면 Mixed Content: The page at ‘Https주소’ was loaded over HTTPS 란 로그를 볼수 있습니다. 이렇게 되었을경우 대략적으로 이미지가 Http일 경우가 많은데 이미지가 보이지 않거나 깨져 보일수가 있습니다. 이 경고 메세지는 Https 사이트에서 Http를 사용하여 발생하는 이슈로 보입니다. 이럴때는 웹뷰에 아래와 같은 코드를 넣어주시면 되겠습니다. webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

안드로이드 라이브러리 등록(2.aar 파일 프로젝트 등록)

이번에는 이전 글에서 만들었던 aar파일을 프로젝트 등록 및 사용을 해보도록 하겠습니다. aar파일을 프로젝트에 등록하는 방법은 굳이 만들었던 파일을 프로젝트 안으로 옮기지 않아도 가능합니다. 안드로이드 스튜디오 메뉴에서 File > Project structure 클릭 후 뜨는 창 > 좌측상단 +버튼 을 클릭하여 Import .JAR/.AAR Package를 클릭하여 aar파일을 등록하여 주셔야 합니다. aar파일을 등록한 후 gradle에서 자신의 aar파일을 입력하여 주시면 되겠습니다. compile project(':라이브러리 파일명') //확장자 필요없음 자 이렇게 까지 하였다면 정상적으로 등록이 되었습니다. 이제 직접 만들었던 함수가 있는지 확인해 보시면 될것입니다. 저는 정상적으로 잘 나옵니다.

안드로이드 라이브러리 만들기(1.aar 파일 생성)

Android Studio를 이용하여 라이브러리 파일(aar 파일)을 생성하고 사용하여 봅시다. 우선 샘플인 코드를 하나 만들어 보도록 하겠습니다. 기본적으로 프로젝트를 만들어 보겠습니다. 프로젝트는 평소 사용하듯이 만들어 주시면 됩니다. 괜히 쓸대없는 파일이 안늘어 나도록 add No Activity만 선택하여 주시면 되겠습니다. 프로젝트를 만든후 테스트할 코드를 작성합니다. 저는 아래와 같이 현재 네트워크 상태를 체크하는 함수를 사용해봤네요. public static int getConnectivityStatus(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNEC..

안드로이드 절전모드 체크(위젯 Timeout)

안드로이드에서 절전모드를 실행시키면 화면밝기, 해상도, 백그라운드 네트워크를 제한하네요.. 제가 절전모드를 사용하는지도 모르고 위젯에서 통신시 TimeOut 나는 현상을 하루종일 찾아봤네요...전 반쪽자리 개발자 인가 봅니다. 현상을 재현하기도 어려웠던게 개발자이다 보니 항상 디바이스에 잭을 꽂아 놓으니 재현하기 어려웠습니다.(절전모드를 실행하여도 디바이스가 충전중일땐 예외로 되는거 같아요.) 이 이부분으로 인하여 앱의 로직도 조금은 수정을 해야했습니다. //절전모드 체크 PowerManager powerManager = (PowerManager) getActivity().getSystemService(Context.POWER_SERVICE); if (android.os.Build.VERSION.SDK_..

안드로이드 사이드바 생성

안드로이드 사이드바 만들기입니다. 사이드바를 생성하는 방법은 여러가지가 있습니다. 정답이 없죠. 자신이 원하는, 생각하는 구조 형태마다 다르게 생성할수 있을것 입니다. 코드와 함께 차근차근 따라해 보시길 바랍니다. 따라서 완성하시면 아래와 같이 보이실 것입니다. 1. 사이드바 xml생성입니다. 샘플에 들어있는 이미지들은 따로 첨부안할게요...쓰고 싶은 이미지들 다운받아 쓰셔요. 2. 사이드바 CustomView를 만들어 줍니다. public class SideBarView extends RelativeLayout implements View.OnClickListener{ /** 메뉴버튼 클릭 이벤트 리스너 */ public EventListener listener; public void setEventL..

안드로이드 웹뷰에서 pdf파일 열기[Webview PDF]

안드로이드 하이브리드앱을 작업하다보면 .PDF 다운받거나 웹에있는 파일을 열어서 보여줘야하는 상황이 생긴다. 막상 그냥 PDF파일을 url로 열경우 이상하게 깨지거나 하는등의 문제점등이 발생한다. 그래서 웹뷰에서 PDF파일을 열어 보기 위해서 특별한 작업을 해줘야 하는데 웹개발자가 data를 던저주는 형식에 따라 조금 달라지는거 같다. 첫번째 웹 개발자가 PDF에 대한 url을 storage/product/brochures파일명.pdf 이런 형식으로 준다면 docs.google.com/gview?embedded=true&url= loadUrl("https://docs.google.com/viewer?url=" +data);

안드로이드 애니메이션 Xml이용[Android Animation]

앱개발을 한다면 이 애니메이션 작업은 빠질수 없는 부분중 하나라고 볼수 있습니다. 보통 메뉴 버튼 클릭시 나타나는 사이드바 작업또한애니메이션 작업이 이뤄지기 때문이지요. 이처럼 간단한 부분 모두 애니메이션으로 작업되어 있습니다. 안드로이드 애니메이션은 총 4가지로 이루어져 있습니다. 1. 가장 많이 쓰는 View의 위치를 움직이는 Translate2. View를 회전시키는 Rotate, 3. View의 투명도를 조정하는 Alpha4. View를 확대/축소 시키는 scale 이중에 실제로 프로젝트에 적용했었던 것들은 Translate와 Alpha 정도입니다. 다음 프로젝트나 유지보수중 필요하다면 그때 즈음에나샘플링 작업을 하면서 한번 사용해볼 예정입니다. 우선 이 글에서는 제가 작업해 보았던 2가지에 대해..

1 2 3