종종 blur 효과를 쓰고 싶을 때가 있다. 예를 들면 다이얼로그의 뒷 부분을 blur 처리하고 싶을 때 등... 일단 blur라는게 어차피 수식으로 이미지를 필터링하는 것인데, 여기서는 RenderScript를 활용한 방법을 소개한다.https://futurestud.io/blog/how-to-blur-images-efficiently-with-androids-renderscript/위 링크에서 이미 코드가 다 나와있는데 조금만 부연 내용을 추가하자면, RenderScript는 support library에 추가되어 있으므로 v8까지 커버 가능하다. 클래스들을 import할 때 패키지를 맞춰서 import 해주도록 신경써주면 된다. 그리고 Android Universal Image Loader 라이브러..
ListView에 header, footer가 있다는 것을 최근에 알았다. 이걸 몰라서 ScrollView 안에 있도록 작업하느라 상당히 곤란했었는데.... 어쨌든 원래 header, footer를 만들어 넣는 방법 자체는 어렵지 않다. 직접 View를 만들어서 ListView에다가 set 해주면 된다. 문제는 이런 방식이 개인적으로 별로 마음에 들지 않는다는 것이었다. 그냥 원래 레이아웃(ListView가 포함된)을 inflate할 때 자동으로 다 해줬으면 했다. 여기저기 분산되어 있는게 좀 맘에 안 들기도 했고... 아쉽게도 기본적으로는 불가능했다. 대신 ListView를 상속받아 확장된 커스텀 View를 만드는 것으로 가능하다. HeaderFooterListView라고 대충 이름 지었다. 소스는 g..
기기에 하드웨어 버튼(맞는 표현인지 모르겠지만)이 있으면 하드웨어 메뉴 버튼을 이용하게끔 되어 있어서 액션바에 메뉴버튼이 보이지 않는 경우가 발생한다. 항상 액션바에 띄우고 싶으면 다음과 같은 코드를 넣으면 된다. 나는 액티비티의 onCreate 메소드 안에 넣었다. try { ViewConfiguration config = ViewConfiguration.get(this); Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); if (menuKeyField != null) { menuKeyField.setAccessible(true); menuKeyField.setBoolean(config, false..
러프한 example
이 글에서는 github를 이용합니다.각자 사용하시는 git tool을 사용하시면 됩니다.혹은 그냥 다운받아서 사용만 하시려는 경우, github에서 download zip을 하시면 됩니다. 또한 제가 이것을 GDG Korea Android Code Lab에서 배웠고 거기서 사용한 Skeleton 프로젝트가 있습니다.그것을 이용할 예정임을 미리 알려드립니다!! 1. skeleton 프로젝트 다운로드 받기https://github.com/huewu/codelab_skeleton위 링크로 들어가서 프로젝트를 다운로드 or git clone 합니다. 이 프로젝트를 만들기위해 수고해주신 huewu님과 gdg korea android를 위해 Fork 한번씩 눌러주시면 더 좋겠죠? :) 또한 아래의 링크로 들어가서..
Google에서는 안드로이드 소스 빌드 환경을 Ubuntu 10.04로 권장하고 있습니다. 이것을 알고 넘어갑시다! (그럼에도 불구하고 맥에서 작업 환경을 구성하고 싶은 분들을 위해.... 제가 직접 시도하면서 겪은 문제들과 극복 방법을 포스팅합니다.) 이 포스트는 http://source.android.com/source/ 문서를 바탕으로 재구성한 포스트입니다. 준비물 : mac port, homebrew, 영어 개발자 문서를 볼 의지!! 1. 디스크 준비 - .dmg 생성! 기본적으로 맥에서는 대소문자 구별이 안됩니다. 이게 왜 문제가 되냐하면 나중에 안드로이드 소스를 다운 받고 나서 make로 빌드를 할 때 대소문자 구별이 되지 않아 빌드를 할 수 없다고 합니다. 따라서 대소문자 구별을 하는 파일 ..
01-16 11:39:43.596: I/System.out(17421): Exception : android.os.NetworkOnMainThreadException 이 오류가 갑자기 났다. 일단 결론부터 말하자면 안드로이드 버전 때문에 생긴 오류였다. 게임을 만드는데 게임랭킹을 구현하느라 네트워크를 쓰고 있었는데, 이전 게임에서는 잘 되던게 이번 게임에서는 왜 안되나 하고 봤더니 자세히 확인은 안해봤지만 안드로이드 버전 1.6에서는 네트워크 관련된 작업을 할 때 아무데서나 해도 상관없지만 2.2 버전(내가 2.2 버전에서 안 됬기 때문에. 몇 버전부터인지는 모름)부터는 Main Thread(UI)에서 네트워크 호출을 하면 무조건 error로 간주한다는 것이다. (참고 : http://ironheel.t..
안드로이드에서는 다이얼로그를 AlertDialog라고 합니다. 개인적인 이유로 텍스트를 입력할 수 있는 다이얼로그를 만들어야 하는 상황이 왔는데 대부분 리스트가 있거나 라디오버튼이 있는 등의 다이얼로그를 만드는 방법만 소개되어 있더군요. 힘들게 찾아냈는데 다른 분들도 볼 수 있게 공유하려 합니다. AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("Title"); alert.setMessage("Message"); // Set an EditText view to get user input final EditText input = new EditText(this); alert.setView(input); alert.setPo..
package apptlantis.si.hong; import java.io.File; import java.io.IOException; import android.app.Activity; import android.content.Context; import android.content.pm.ActivityInfo; import android.graphics.Canvas; import android.graphics.Matrix; import android.hardware.Camera; import android.media.CamcorderProfile; import android.media.MediaRecorder; import android.os.Bundle; import android.util.Att..
- Total
- Today
- Yesterday