본문 바로가기

안드로이드

(37)
[안드로이드] 이미지와 텍스트가 같이 들어간 버튼 만들기 이미지와 텍스트가 같이 들어간 버튼 만들기안드로이드 SDK(1.5기중)에는 버튼을 처리하는 클래스가 Button과 ImageButton 크게 두가지 있다. ImageButton이 내부에 이미지를 가지고 있는 버튼이고, Button은 TextView를 상속하고 있기에 텍스트 버튼이라고 생각하기 쉬운데, 사실 그렇지 않다.일반적으로 버튼을 표시할때 간단하게 해당 버튼의 기능을 시각화 하여 나타내는 간단한 Icon을 함께 넣어주는 경우가 많을텐데, 그런 경우 ImageButton대신 Button을 활용해서 처리할 수 있다. 이미지의 위치는 텍스트의 상, 하, 좌, 우에 위치시킬 수 있으며, Xml에서는 각각 android:drawableTop, android:drawableBottom, android:draw..
[안드로이드] Bitmap 과 ByteArray 상호변환 Bitmap 과 ByteArray 상호변환 이 포스팅은 Bitmap 데이터 형을 ByteArray로 변환하거나, 혹은 그 역, ByteArray -> Bitmap으로 변환하는 방법을 예제코드와 함께 다룬다. 안드로이드 카메라와 이미지를 다루다보면, 종종 데이터 형(type)이 달라서 형변환을 해야 하는 상황이 발생한다. 그때 필요한 내용이다. 방법을 간단히 요약하자면 아래 두줄만 보면 된다. Bitmap -> ByteArray : ByteArrayOutputStream 인스턴스를 생성한 후, Bitmap의 compress 메서드를 통해 비트맵을 압축하여 stream에 담는다. ByteArray -> Bitmap : BitmapFactory의 decodeByteArray 메서드를 통해 byte Array를..
[안드로이드] 안드로이드 화면이 회전될 때 어플리케이션 개발자가 주의해야할 점 안드로이드 화면이 회전될 때 어플리케이션 개발자가 주의해야할 점 안드로이드는 가속도 센서나 조도 센서와 같은 다양한 종류의 센서를 다루기 위한 API 를 제공하고 있다. 그 중 가장 일반적으로 사용되는 센서 두 가지는, 가속도 센서와 자기장 센서(나침반 센서) 이다. 어플리케이션과 디바이스는 이 두 가지 센서를 사용자 입력값으로 활용하여, 디바이스 스크린을 어느 방향으로 돌릴지 결정하는데 사용하곤 한다. 그러나, 최근 이와 관련된 새로운 문제가 발견되었다. 새로 출시된 디바이스들 중에는 (모토롤라의 CHARM 과 FLIPOUT 이라는 모델) 기본 화면 모드로 포트레이트(portrait) 모드 대신 랜드스케이프(landscape) 모드를 사용하고 있다. 따라서, 기본 화면이 세로로 길쭉하지 않고 가로로 넓..
[안드로이드] 카메라 해상도 바꾸기 안드로이드 카메라 해상도 바꾸기 카메라를 찍을때 촬영할 이미지의 해상도를 변경하는 방법을 보여주는 예제코드 입니다. 아래 코드는 APIDemo에 있던 Camera 소스를 약간 변경한 것입니다. Preview Class는 카메라에서 1600 * 1200 (2MP)과 가장 가까운 해상도를 찾아서, 그 해상도로 촬영을 해 주는 역할을 합니다. Activity에서 불러오는 방법은 APIDemo에 있는 Camera소스를 찾아 보시기 바랍니다. class Preview extends SurfaceView implements SurfaceHolder.Callback { private static final int IMAGE_WIDTH = 1600; // 촬영할 가로 픽셀 수 private static final in..
[안드로이드] http에 request요청시 - redirect 하는 방법 HTTP request요청시 redirect 하는 방법 및 예제코드안드로이드 앱을 만들다보면 http로 request를 보냈는데, 서버에서 url주소를 redirect해서 response를 보내주는 경우가 있다. 그럼 개발자가 의도한 동작이나 입력한 주소로는 요청이 안되게 된다. 이걸 해결하기위해서는 java에서 redirect된 주소로 다시 요청을 해줘야 한다. 상당히 귀찮다.예제를 보여주겠다. 이를 응용하거나, 바로 가져다 사용하면 귀찮은 작업을 덜 수 있다. private InputStream openConnectionCheckRedirects(URLConnection c) throws IOException { boolean redir; int redirects = 0; InputStream in ..
한국기술교육대학교 - 안드로이드 어플리케이션 국내 여러 대학교들이 아이폰용, 안드로이드용 대학교 어플리케이션을 가지고 있습니다. 전문제작업체를 통해 만들어진 공식앱을 가지고 있는 대학도 있고, 그 대학에 소속된 학생들이 직접 제작해서 배포하고있는 대학도 있지요. 제가 재학중인 한국기술교육대학교에서도 여러 학생들이 졸업작품 등으로 아이폰, 안드로이드폰 용 한기대 어플을 제작해서 선보였었습니다. 그런데 앱스토어나 마켓에 한국기술교육대학교로 검색하면 나오는 앱은 없더군요. 제가 아이폰을 사용하지 않아서 아이폰쪽은 잘 모르겠지만, 안드로이드 마켓에는 확실히 없었습니다. 그래서 '직접 안드로이드용 한국기술대학교 앱을 만들자!' 라는 생각을 하게 되었고, 2010년 11월 중순쯤부터 제작을 시작했습니다. 저와 같은 컴퓨터공학부 소속인 학우 4명과 함께 시작했..
[안드로이드/Tip] LogCat 한글 메시지 확인하기 LogCat은 무엇인가?LogCat은 안드로이드 앱 개발환경에서, 다양한 앱과 데몬프로세스들이 생성하는 로그를 보는데 사용하는 명령어이다.이 LogCat은 Android에서 제공하는 ADB shell에서 사용할 수도 있지만, Android SDK 로써 사용하는 이클립스에서 LogCat윈도우를 통해서도 사용할 수 있다.그런데, 아직 이 이클립스를 통한 Android SDK환경이 불안정 한 것인지, 이클립스의 LogCat윈도우는 여러가지 문제를 가지고 있다.그중 한가지가 바로 한글 출력시 깨져서 보인다는 것이다. LogCat 에서 깨지는 한글 메시지 확인하기 이클립스에서 사용하는 LogCat에서는 한글이 깨져서 나온다. (윈도우 버젼 이클립스. 현재 사용중인 버젼은 헬리오스) 인코딩 문제 때문이라고 하는데,..
[안드로이드] 웹뷰를 통한 apk 파일 다운로드 및 제어 안드로이드에서 웹뷰를 통한 apk 파일 다운로드 및 제어 아래와 같은 순서로 진행하겠다. apk 파일을 다운 받을 수 있는 WAS 구축(HTML의 a 태그를 이용한다.)안드로이드 웹뷰를 통한 웹페이지 접근웹뷰 클라이언트를 오버라이딩하여 apk 파일을 sd 카드 내에 다운 받기다운 받은 apk를 안드로이드 패키지 매니저를 통해 install 하기 apk 파일을 다운 받을 WAS 구축 WAS(Web Application Server)는 톰캣을 이용했다. 톰캣의 설치는 간단하므로 이 글에서는 제외한다. 참고로 난 우분투에서 만들었다. war을 톰캣 서버에 deploy할 때 다음과 같은 html을 추가했다. war 파일 내 경로 : test/ 경로 내 포함된 파일 : test.html, HelloWorld.ap..