본문 바로가기

Android54

android 웹브라우저 만들기 Web Browser 예제 스마트 폰에 기본적으로 웹브라우저가 내장이 되어있습니다만, 어플을 만들다보면 웹브라우저를 어플안에 넣을때도 있습니다. 물론 성능좋고 기능많은 브라우저가 있지만, 이건 어디까지나 어플안에 서비스 차원에서 넣는 것이니깐요^^ 저도 최근 산모진통측정기 V3 를 업데이트 하면서 웹브라우저를 추가하였습니다. 요런식으로 말이죠 주소창 위쪽은 다른기능으로 가기위한 탭버튼 입니다. 그아래는 웹브라우저. 일단 코드는 간단합니다. 위 그림과 비교해 보면 Line 7의 imagebutton은 뒤로가기버튼, Line 14의 imagebutton은 앞으로 가기버튼 Line 21의 EditText는 주소표시줄 Line 28의 imagebutton은 새로고침 Line 37의 webview는 웹브라우저 화.. 2015. 2. 12.
에뮬레이터 INSTALL_FAILED_CPU_ABI_INCOMPATIBLE 안드로이드용 에뮬레이터로 Genymotion(제니모션)을 사용하는데, 어떠한 어플은 실행하려고 하니 INSTALL_FAILED_CPU_ABI_INCOMPATIBLE 라는 에러가 나오네요. 검색해보니 Genymotion은 x86기반의 에뮬레이터인데, ARM 기반의 에뮬레이터가 아니라서 실행할 수 없다는;; 하지만 방법이 있네요. xdadevelopers에 올라온 내용인데, 링크를 타고 들어가면 방법이 있습니다. 아니면 여기서 파일을 다운로드 받으신 후 압축파일 그대로 에뮬레이터에 드래그 시켜줍니다. 드래그앤 드롭을 하시면 위와같은 메세지가 뜹니다. OK를 눌러주시면 설치가 되고, 설치가 다 되고난 후 에뮬레이터를 다시 실행해 주시면, ARM 인식되어 어플이 실행이 됩니다.^^ 2015. 2. 11.
surfaceview 에서 screenshot 찍기 서피스뷰 예제 서피스뷰는 카메라의 프리뷰를 보여줄 때 많이쓰는데요. 카메라 프리뷰를 서피스뷰로 보여주는 이유는 카메라의 실시간 영상을 다른뷰로 보여주려면 부하가 많이 걸리지만, 서피스뷰를 이용하면, 그 뒷단에서 작업한 후 서피스뷰를 통해 카메라 프리뷰를 띄워주기 때문에 부하를 줄일 수 있어 많이 쓰입니다. 어플을 만들다 보면 카메라 프리뷰를 스크린샷으로 찍어야 할 때가 있는데요. 저같은 경우에는 카메라 위에 오버레이(이미지및 텍스트)를 띄워서 함께 스크린샷을 찍을려고 이 방법을 사용했습니다. 예를 들면 위와같이 Frame Layout안에 Surface View와 각종 Overlay를 넣은 화면을 생각할 수 있습니다. 그리고 Surface View에는 카메라를 그 위에는 정보에 해당하는 Overlay를 띄.. 2015. 2. 11.
daum 로컬API 앱 불가(웹만 가능) 지니 동네날씨(Genie Weather) 업데이트를 준비중인데, 위 그림처럼 날씨위치를 지도로 표시중입니다. GPS로 위치를 받아오는건 괜찮은데, 지명으로 위치를 검색하려니 구글에서 지원안되는 지역이 존재하네요;; 그래서 DAUM API의 로컬API를 이용하였는데, PC에서 잘되던게 android에서 안되길래 봤더니, PC에서만 이용가능하다는 군요 ㅠ 다른방법을 찾아봐야 겠습니다. 아~ 할일은 많은데 머리아프네요;; 추가~ 네이버 API도 같은문제가 있네요 ;; 일단은 구글맵을 이용하는 수 밖에 ㅠ 2015. 2. 11.
NumberFormatException (kitkat) 지니 숫자야구가 진저브레드 이하에서 에러가 뜬다길래 로그를 확인하였더니, numberformatexception이 뜨네요. 찾아보니 int형이 무지 길거나 하는 경우 발생한다는군요. 하지만 제 로그에는 애니메이션쪽이라 알아봤더니... scale 효과시 '%'를 붙이면 진저이하에서는 인식을 못하고 NumberFormatException을 뿌리는 것 같습니다. '%'를 없애니 정상동작하네요. 제 테스트 기기가 젤리빈이랑 킷캣이라보니;;; 몰랐네요;; 2015. 2. 11.
랜덤변수 출력하기!! 코딩을 하다보면 랜덤한 수(난수)를 만들어야 할 경우가 있습니다. 이럴때를 대비해서 JAVA에서는 Math.random()이라는 method를 제공하고 있습니다. Math.random()을 쓰면 return값이 double형으로 0.0~1.0까지의 값을 가지게 됩니다. 하지만 보통은 int형 정수가 많이 필요할텐데 이럴 땐 사용할 범위만큼 곱해주면 됩니다. 예를들어 로또프로그램을 만든다면 1~45까지가 있겠죠? 그럼 Math.random()*44+1을 해줍니다. 왜냐면 0은 안쓰니깐요. 그럼 최소 1~45까지 나오게 됩니다. 1int lotto_first=(int)((Math.random()*44)+1);cs 이렇게 해주면 됩니다. 하지만 로또프로그램의 경우 중복의 수가 나와선 안됩니다. 그래서 위의 경.. 2015. 2. 11.

인기글