본문 바로가기

프로그래밍/Android

(93)
투명한 레이아웃 만들기 투명 레이아웃이야 android:background="#80RRGGBB"이렇게 설정하면 투명한 레이아웃 바탕이 만들어진다.헌데, 요것만으론 좀 밋밋한 맛이~ ㅎㅎ -_-;; 요걸 커스텀한 모습으로 구현하려면 무얼 해야 하나? 레이아웃 구현 : 별다른 사항은 없으며 dispatchDraw() 메쏘드를 오버라이드해구현해 주면 된다. 레이아웃은 onDraw를 호출하지 않으며 배경을 그리기위한 dispatchDraw를호출한다. 따라서, 이 메쏘드를 오버라이드해서 별도의 처리를 더해주면 끝. 정확히 말하자면 레이아웃(ViewGroup)은 onDraw()를 호출하지 않도록 설정되어있다.레이아웃에서 onDraw 메쏘드를 사용하려면 setWillNotDrawEnabled(false); 를 호출해 주면 된다.레이아웃은 ..
메시지 핸들러 사용하기 Handler 는 내부적으로 쓰레드를 생성해 메시지큐의 데이터의 입출력을 처리하는 녀석이다.메시지큐에 메시지를 전송하거나 해당 메시지를 얻어올수 있다.메시지를 전송할때 지연시간을 두어 전송토록 하는 메쏘드도 포함되어 있어쓰레드간 메시지 스케줄링시 이래저래 많이 사용된다. 1. 메시지를 수신할 녀석을 설정한다.public Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg){ }}; 별거읍넹.. 이렇게 설정하면 해당 쓰레드의 메시지 큐에 메시지가존재하는 경우 handleMessage() 메쏘드가 호출된다. switch( msg.what ) { } 과 같이 handleMessage() 메쏘드에 메시지 처리루틴을 넣어주..
리시버를 통한 sms데이터 가져오기 SMS 가져오기 브로드캐스트 리시버를 생성하고, android.provider.Telephony.SMS_RECEIVED 액션을 사용한다. manifest.xml 에 리시버 설정.... 퍼미션 추가
Broadcast/BroadcastReceiver 브로드캐스팅~ 각각의 어플은 이 기능을 통해 자신의 상태를 공지하거나 특정 액션을 얻어올 수 있다. 1. 전송할 액션 설정 : String 으로 패키지명을 포함해 임의로 지정한다.public static final String MY_ACTION = "kr.package.action.MY_ACTION" 2. 전송할 인텐트를 정의한다.(어느녀석이 받아서 처리할지 모르므로 묵시적 호출)Intent intent = new Intent( MY_ACTION , Uri.parse(""));추가정보도 필요하면 넣고~intent.putExtra("value", value ); 3. 브로드캐스팅으로 전송sendBroadcast( intent ); * 브로드캐스트 리시버BroadcastReceiver 를 상속받아 onRec..
AlarmManger 사용 스케줄과 관련한 내용~쓰레드를 통해 구현가능하나 쓰레드는 아무래도 데드락에 대한 고민이 뒤따른다. AlarmManager는 일정 간격으로 스케줄링을 하고 싶을때 사용하는 서비스이다.서비스 이므로, 현재 객체나 해당 객체가 동작 중일 필요없이 항상 활성화 시킨다. 어플리케이션 종료나 비활성화시 해제해주지 않으면? ^^ 계속 뜬다!!! BroadcastReceiver 에 관해서는 별도로 포스팅 한다~ 설정하기 1. 명시적 인텐트 설정Intent intent = new Intent( MyClass.this, AlarmService.class ); 2. 브로드캐스트 송신자 설정PendingIntent sender = PendingIntent.getBroadcast( MyClass.this, 0, intent, ..
AsyncTask 이해하기 AsyncTask : 1.5에 추가된 유틸리티 클래스UI 쓰레드를 위한 녀석, 이 클래스는 태스크 생성을 간단히 할 수 있음. google예제)ref> http://developer.android.com/reference/android/os/AsyncTask.html private class DownloadFilesTask extends AsyncTask { protected Long doInBackground(URL... urls) { int count = urls.length; long totalSize = 0; for (int i = 0; i < count; i++) { totalSize += Downloader.downloadFile(urls[i]); publishProgress((int) ((i..
테마설정하기 * 커스텀 테마/스타일 만들기 res/values 디레고리에 styles.xml 이라는 이름의 파일 생성 스타일 테마( @은 기존 리소스, ?는 현재 정의된 리소스 ) 메니페스트에서 테마 설정하기어플리케이션 테마설정 액티비티 테마설정 동적 테마설정setTheme( android.R.style.MyTheme ); >> setContentView() , inflate() 전에 설정해야 함. * 안드로이드에 이미 선언된 다이얼로그 테마 * 기존 테마의 수정 : 스타일항목의 parent 항목을 추가
타이틀바 없애기 1. onCreate() 에서 setContnetView() 를 호출하기 이전에 requestWindowFeature() 사용Window 객체에 정의된 상수값을 설정. requestWindowFeature( Window.FEATURE_NO_TITLE ); 2. 테마사용 : manifest.xml에서 테마를 지정android:theme="@android:style/Theme.NoTitleBar" 3. 커스텀 테마로 만들어 사용 true