안드로이드 개발 시 참고될 만한 자료 (android reading)

 

[출처 ] http://hrhdev.tistory.com/106

 

1. 주소록
* http://gnuteam.tistory.com/category/안드로이드/주소록
2. 퍼즐
http://blog.naver.com/mar189/10080767635
3. Rss 피드
http://blog.naver.com/macyoo/100106828155
4. 노트 패드
http://blog.naver.com/macyoo/100103892810
5. 테트리스 예제
http://utime.blog.me/150094424484
2. 파서 (XmlPullparser, DOM, SAX)
http://www.androidpub.com/49492 (파서 비교분석)
http://blog.naver.com/skyalzza/10085247021
http://blog.naver.com/zzbung/10098164416
http://blog.naver.com/zzbung/10098039624
http://blog.naver.com/zzbung/10098014857
http://blog.naver.com/zzbung/10097963917
http://www.androes.com/34 (Xml Parser)
http://xxxh4ck.com/140117600008 (샘플)
http://blog.naver.com/skyalzza/10085247021
* http://blog.naver.com/cache798/130009188949 (파서 모음)
- 네이버 API
http://blog.naver.com/zzbung/10098165529
- 구글 날씨 API
http://blog.naver.com/zzbung/10098039827
http://blackzaket.blog.me/80119832126
* DOM Parser
http://loadtodream.blog.me/30093254014
* SaxParser
http://loadtodream.blog.me/30093254174
http://blog.naver.com/mygirl2/40108508015 (네트웍을 통한 파서)
http://mygirl2.blog.me/40108508015
http://mygirl2.blog.me/40108507940
http://mygirl2.blog.me/40108507931
(튜도리얼)
http://mygirl2.blog.me/40108507914
http://mygirl2.blog.me/40108507882
http://blog.naver.com/monster7575/100106899826
* (Json)
http://vicfaith.blog.me/150091632189
http://blog.naver.com/dlckdrl/50085760239
3. 하드웨어 API
http://blackzaket.blog.me/80109627005 (MediaRecoder, Camara, 센서 관리자, 블루투스, 기타)
http://blog.naver.com/dishyguy/100104276840
4. Admob (앱에 광고 붙이기)
http://blog.naver.com/lighthousede/70086044507
http://blackzaket.blog.me/80110010916
5. AdSence
http://blackzaket.blog.me/80102787501
http://replygun.tistory.com/129
6. Proguard
http://samse.tistory.com/entry/jar-file만-proguard적용하기
http://samse.tistory.com/entry/usage-of-proguard-on-androidproject
7. 구글 캘린더 API
http://blackzaket.blog.me/80111806480
http://blog.naver.com/kunsanmoon/40121162660
http://wiki.developerforce.com/index.php/Google_Calendar_API
http://code.google.com/intl/ko/apis/calendar/data/2.0/developers_guide_java.html
8. 주소록
http://samse.tistory.com/entry/Technical-Arcticle-3-Using-the-Contacts-API
9. C2DM
http://blog.naver.com/PostView.nhn?blogId=huewu&logNo=110087032264
http://blog.naver.com/monster7575/100116889502
http://blog.naver.com/monster7575/100116828808
http://samse.tistory.com/entry/How-to-implement-Push-Notifications-for-Android
10. XMPP
http://samse.tistory.com/category/Android/XMPP
11. 슈팅 게임
http://foxmann.blog.me/90096097569
12. 게임 예제
http://artbrain.co.kr/27
13. 게임 엔진 라이브러리
http://www.cuteandroid.com/open-source-android-2d-or-3d-game-engine-for-android-developers-plus
14. 사칙연산
http://blog.naver.com/monster7575/100112243030
1. SharedPreference
http://blog.naver.com/dong277/130081203558
SharedPreferences pref = getSharedPreferences("AndDemo", 0);
SharedPreferences.Editor edit = pref.edit();
edit.putInt("LastPackage", position);
edit.commit();

2. 다른 App에서 접근 하기
<s>http://lhk3832.blog.me/10084016652</s>

//Application Package Name to Access
public static final String PACKAGE_NAME = "com.hk.android";
//Reference Preference Name
public static final String COMMON_PREF = "CommonPref";
//Preference Key
public static final String NAME = "Name";
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();

try {
//데이터를 검색하기 위한 Context를 작성한다
Context other = createPackageContext(PACKAGE_NAME, 0);

//Preference에서 value searching
SharedPreferences common = other.getSharedPreferences(COMMON_PREF,
MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE);

EditText name = (EditText)findViewById(R.id.name);
name.setText(common.getString(NAME, ""));
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
1. 음성검색
http://tkdcodl.blog.me/20112327596 (음성 검색 결과 텍스트로 변환)
<<<
2. TTS (Text to Speach)
http://samse.tistory.com/entry/Speech-Input-API-for-Android
http://blackzaket.blog.me/80109881305
>>>
http://blackzaket.blog.me/80108647305 2
http://blackzaket.blog.me/80108647274 1
http://blackzaket.blog.me/80108647228 0
http://blog.naver.com/yell301/130094698647
http://blog.naver.com/neo__one/90080376143
http://blog.naver.com/neo__one/90081022494
http://blog.naver.com/neo__one/90081390270
http://blog.naver.com/neo__one/90100741944
3. 음성인식
http://blog.naver.com/free2824/60111491983 (전화걸기)
http://blog.naver.com/free2824/60111340155
http://blog.naver.com/neo__one/90094104483
http://gnuteam.tistory.com/15
* http://blog.naver.com/neo__one/90096095730 (Voice Action)
4. 얼굴 인식
http://www.androidpub.com/22845
http://d.hatena.ne.jp/bols-blue/20090818/1250562668
http://blog.livedoor.jp/deeds_not_words/archives/624855.html
http://www.anddev.org/quick_and_easy_facedetector_demo-t3856.html
FaceDetector.Face[] faces = new FaceDetector.Face[10]; // 최대 인식할 얼굴수 설정
FaceDetector detector = new FaceDetector(bitmap.getWidth(), bitmap.getHeight(), faces.length);
int numFaces = detector.findFaces(bitmap, faces); // 얼굴 인식 실행
for(FaceDetector.Face face : faces) {
PointF midPoint = new PointF();
face.getMidPoint(midPoint); //눈과 눈사의 가운데 지점
float eyesDistance = face.eyesDistance(); //눈과 눈사이의 거리
//처리.
}
1. 메뉴
* (정의, 예제)
http://tigerwoods.tistory.com/24
http://sje0114121.blog.me/150089166716
http://tkdcodl.blog.me/20109013005
http://blog.naver.com/neo__one/90074608851 (onCreateOptionsMenu, onOptionsItemSelected)

private static final int MENU_1 = Menu.FIRST + 0;
>>

2. 슬라이드 메뉴
http://blackzaket.blog.me/80113172436
3. 서브 메뉴에 체크박스, 라디오버튼 삽입
http://blackzaket.blog.me/80112141651
4. ListView 메뉴 동일 생성
http://blog.naver.com/free2824/60101681636
>>>
5. 옵션 메뉴 배경 바꾸기
http://blog.daum.net/hopefullife/154
1. Content Provider
http://rsequence.com/android_blog/node/17 (정의)
http://xxxh4ck.com/140104181421
http://sje0114121.blog.me/150089239598
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(Uri.parse(WORDURI), null, null, null, null);
while (cursor.moveToNext()) {
String eng = cursor.getString(0);
String han = cursor.getString(1);
Result += (eng + " = " + han + "\n");
}
cursor.close();
2. 예제
http://loadtodream.blog.me/30083436042 (예제)
1. 서비스
* http://sje0114121.blog.me/150089240741 (정의 및 예제)
http://woosa7.tistory.com/entry/안드로이드-Service-구현
http://huewu.blog.me/110081442947 (2.0)
* http://sje0114121.blog.me/150089240741 (Play 데모)
http://blog.naver.com/monster7575/100114856647 (죽지 않는 서비스)
http://samse.tistory.com/entry/죽지-않는-서비스-만들기
http://fanpro.springnote.com/pages/4789481
http://blackzaket.blog.me/80122576995 (Remote Service 구현하기)
* http://lhk3832.blog.me/10083308831 (BindService, UnbindService)
* http://lhk3832.blog.me/10083301044 (StartService, StopService)
* 다른 프로젝트의 엑티비티에서 서비스 호출
http://lhk3832.blog.me/10091902089
>>>
2. Parcel
* http://vicfaith.blog.me/150096809704
http://blog.naver.com/anwoong_2003/110094581938 (Bundle 객체로 전달)
http://samse.tistory.com/entry/Parcelable-Object-만들기-1
http://blog.naver.com/kippee/130047778008
http://utime.blog.me/150101703636 (비트맵 전달하기)
3. AIDL
http://javaexpert.tistory.com/38
http://javaexpert.tistory.com/114
http://samse.tistory.com/entry/aidl과-원격-인터페이스-추가-정리
1. Map
* (구글 맵)
http://blackzaket.blog.me/80106309540
http://xxxh4ck.com/140118161272
http://loadtodream.blog.me/30093665644
http://loadtodream.blog.me/30093256120
http://loadtodream.blog.me/30083433889 (오버레이 아이템)
http://loadtodream.blog.me/30083433806
http://loadtodream.blog.me/30083433344
http://loadtodream.blog.me/30083432696
http://loadtodream.blog.me/30083432551
* (서명 인증서, MD5 핑거프린트)
http://blackzaket.blog.me/80106448156
http://lhk3832.blog.me/10083591919
>> (Map + Overlay)
http://blackzaket.blog.me/80106434335 (Overlay)
http://blog.naver.com/kippee/130047234393 (MapView, Overlay)
http://blog.naver.com/davincigo/60121218455
* http://lhk3832.blog.me/10091002315 (좌표표시, 좌표간 선그리기, GeoPoint)
* http://lhk3832.blog.me/10085765233 (Geocoding)
* http://lhk3832.blog.me/10085650469 (Criteria)
* http://lhk3832.blog.me/10083722726

mapView.setBuiltInZoomControls(true);

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
http://blog.naver.com/davincigo/60117696575 (표시마커 그림자 지우기)
http://blog.naver.com/davincigo/60117696532 (마커 이미지 변경)
* 지도 풍선
http://blog.naver.com/macyoo/100106819279
http://blog.naver.com/macyoo/100106819112 (투명 레이어)
(검색기능 추가)
http://modian.tistory.com/entry/Android에서-Google-Map-내-검색-기능-추가하기
http://modian.tistory.com/25
2. GPS, LBS

* (위치 정보)
http://lhk3832.blog.me/10085650469
<s>http://lhk3832.blog.me/10083752164</s>
* http://lhk3832.blog.me/10083755268 (GeoCoder, GeoPoint)
http://blog.naver.com/monster7575/100120154843
http://blog.naver.com/macyoo/100106655999
http://blog.naver.com/davincigo/60117696712 (현재 위치 구하기)
* 위도, 경도 값으로 거리 구하기
http://babyjaycee.blog.me/100106540529
http://blog.naver.com/davincigo/60117696645 (두지점 거리구하기)
* GeoCoder
<s>http://lhk3832.blog.me/10085764574</s>

Geocoding은 거리 주소와 경도/위도 맵 좌표 간을 서로 변환할 수 있도록 해준다. 이는 위치기반 서비스와 맵기반 액티비티에서 사용되는 위치와 좌표에 대해 인식 가능한 컨텍스트를 제공할 수 있다.

순방향 지오코딩 (Forward Geocoding) : 어느 한 주소의 위도와 경도를 찾는다.
역방향 지오코딩 (Reverse Geocoding) : 위도와 경도에 대한 주소를 찾는다.

지오코더 조회는 동기적으로 수행되기 때문에 calling thread를 block 시킨다. 이는 느린 데이터 연결의 경우 Application Unresponsive Dialog가 뜨는 상황을 초래할 수 있다. 대부분의 경우 이러한 조회는 Service나 Background Thread로 옮기는 것이 바람직하다.

LocationManager : 위치기반서비스에 대한 관리
LocationProvider : 장치의 현재 위치를 결정하는 데 사용되는 서로 다른 각각의 위치 검색 기술

* Emulator 에서 위치 공급자를 이용한 위치 업데이트
KML (Keyhole Markup Lnaguage)
- 구글 어스에서 사용하기 위한 목적으로 개발된 지리 정보 및 시각화 표현을 위한 XML 기반의 언어 스키마
GPX (GPS Exchange Format)
- Application과 Internet Web Service 간의 GPS 데이터 교환을 위해 설계된 XML 스키마

* LocationManager 클래스의 주요 위치 공급자
LocationManager.GPS_PROVIDER
LocationManager.NETWORK_PROVIDER

요구 기준에 기반해서 공급자를 찾으려면 Criteria class를 이용하면 된다.
1. WallPaper
http://blog.naver.com/lowmans/100110679775
http://blackzaket.blog.me/80110789411 (Live Wallpaper tutorial)
2. Top 10
http://blackzaket.blog.me/80113611430
1. Key
* 키보드
http://blog.naver.com/monster7575/100114044151 (자판 안나오게 하기, 보이기, 숨기기)
http://samse.tistory.com/entry/activity-androidwindowSoftInputMode
// InputMethodService의 참조를 얻음.
InputMethodManager inputManager = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE);
// SoftInput keyboard를 show함.
inputManager.showSoftInput(this.getCurrentFocus(),InputMethodManager.SHOW_IMPLICIT);
http://blackzaket.blog.me/80116073785 (키보드 강제로 올리기)
android:windowSoftInputMode="adjustPan" (manifest에 선언)
http://blog.naver.com/lcblue/100114445471 (게임에서 많이 사용되는 기능, 예제)
http://blog.naver.com/lowmans/100116173027 (안드로이드 Home Key)
http://fanpro.springnote.com/pages/4817371 (애니메이션 중에는 키보드 이벤트가 먹히지 않는다.)
http://fanpro.springnote.com/pages/4789635 (Back Key 오버라이딩)
http://blog.naver.com/dythmall/30096054823 (키보드 엔터키 바꾸기)
* Key Event
http://blog.naver.com/neo__one/90073270931 (키 이벤트 View, 자바소스로 생성)
http://blog.naver.com/lowmans/100117055086 (KeyEvent 강제 발생)
2 . 터치
http://mainia.tistory.com/460 (터치와 Message 구현)
http://mainia.tistory.com/470
on_clickListen이 먼저 일어난 후 onTouchListen 이 호출됨.
Activity.dispatchTouchEvent(MotionEvent)
: Window로 Dispatch되기 전에 Activity가 모든 이벤트를 가로챌 수 있게 해준다.
ViewGroup.onInterceptTouchEvent(MotionEvent)
: ViewGroup이 자식 Views로 Dispatch될 때 이벤트들을 볼 수 있다.
ViewParent.requestDisallowInterceptTouchEvent(boolean)
: onInterceptTouchEvent(MotionEvent)로 Touch Event를 가로채지 않을 것임을
Parent Viewe에게 알릴 때 호출된다.
http://samse.tistory.com/entry/터치모드-정리
http://utime.blog.me/150091436416 (예제) > 차후 적용해 보자
* 멀티 터치
http://www.androidside.com/bbs/board.php?bo_table=B46&wr_id=11860
http://miksnug.pe.kr/24 (예제)
http://blog.naver.com/lowmans/100109461211
>>>>
http://blackzaket.blog.me/80114613254
http://blog.naver.com/lcblue/100112600706
http://blackzaket.blog.me/80111018476
http://blackzaket.blog.me/80113232630
http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-6-implementing-the-pinch-zoom-gesture/1847
http://blog.naver.com/lowmans/100113645021 (TouchEvent, MotionEvent 위치 바꾸기)
* http://blog.naver.com/neo__one/90074005977 (Handler, 반복 Tick)
>>>
3. 이벤트
* (정의)
http://loadtodream.blog.me/30084213436
(버튼 클릭 이벤트)
http://woosa7.tistory.com/entry/안드로이드-버튼-on_clickListener-인터페이스-구현
>>>
http://blog.naver.com/dong277/130082735647
http://blog.naver.com/dong277/130082728620 (화면 관련)
http://blackzaket.blog.me/80119628782 (이벤트 처리 과정)
4. Gesture
http://blog.naver.com/dong277/130082731744
http://blackzaket.blog.me/80114160609 (Scale)
* (샘플 소스)
http://flytop.tistory.com/entry/SimpleGesture
http://blackzaket.blog.me/80108688473
http://barnie.blog.me/104875532
http://blog.naver.com/macyoo/100111110151
http://loadtodream.blog.me/30083549416 (Shaking Motion)
http://blog.naver.com/neo__one/90075703987 (GestureLibraries)
5. View Drag
http://blackzaket.blog.me/80101582245 (Bitmap View)
<script src="http://flytop.tistory.com/plugin/CallBack_bootstrapper?&src=http://cfs.tistory.com/blog/plugins/CallBack/callback&id=191&callbackId=flytoptistorycom1916056&destDocId=callbacknestflytoptistorycom1916056&host=http://flytop.tistory.com&float=left&random=762"></script> <script src="</script>' target="_blank" gt="gt" lt="lt" script="script">http://flytop.tistory.com/plugin/CallBack_bootstrapper?&src=http://cfs.tistory.com/blog/plugins/CallBack/callback&id=169&callbackId=flytoptistorycom169865&destDocId=callbacknestflytoptistorycom169865&host=http://flytop.tistory.com&float=left&random=440"></script>
1. WebView
* (정의 및 사용법)
http://mainia.tistory.com/595
http://mainia.tistory.com/593 (웹페이지에서 스크롤 방지)
http://samse.tistory.com/entry/WebView
http://samse.tistory.com/entry/Using-WebView (App과 웹컨텐츠간 통신방법)
addJavascriptInterface() 자바스크립트의 자바 객체 접근 허용
createSnapshot() 현 페이지의 스크린샷 생성
getSettings() 설정을 조정하는 WebSettings 객체 반환
loadData() 브라우저에 주어진 문자열 데이터 로딩
loadDataWithBaseURL() 기준 URL을 사용해 주어진 데이터 로딩
loadUrl() 주어진 URL을 사용해 웹페이지 로딩
setDownloadListener() 사용자가 .zip이나 .apk 파일을 다운받는 경우 등의 다운로드 이벤트의 콜백 등록
setWebChromeClient() 제목이나 진행률 표시줄을 업데이트하거나 자바스크립트 대화상자를 여등 등, WebView 영역밖에서 실행되는 이벤트의 콜백을 등록
setWebViewClient() 리소스 로딩하기, 키 눌림, 인증 요청 등의 이벤트를 방해하도록 애플리케이션이 브라우저에 걸림돌을 설정함.
stopLoading() 현재 페이지 로딩 멈추기
http://blackzaket.blog.me/80114436024
http://blog.naver.com/yell301/130093631952 (goBack, goForward)
2. WebView를 Dialog에 띄우는 방법
http://blog.naver.com/lowmans/100114622708
>>>
3. WebView Zoom
http://blackzaket.blog.me/80114465914
4. WebView와 App 간의 통신
http://blackzaket.blog.me/80114436397
5. 로컬 파일 불러오기
http://blackzaket.blog.me/80114436226
WebView.loadUrl(file://android_asset/<파일명>);
6. WebView를 통한 Apk파일 다운로드 및 설치
http://sdop.egloos.com/3630690
1. 증강 현실
http://blog.naver.com/lowmans/100117007383 (오픈 소스)
증강현실의 오픈소스에 관한 사이트를 참고하세요.

1-1. http://code.google.com/p/andar/
1-2. http://code.google.com/p/andar/downloads/list
2-1. http://www.mixare.org/
2-2. http://code.google.com/p/mixare/downloads/list
3-1. http://www.devx.com/wireless/Article/43005
3-2. http://www.devx.com/wireless/Article/42482
3-3. http://www.devx.com/wireless/Article/42482/1954
4. http://www.seeingwithsound.com/android.htm
5-1. http://www.layar.com/
5-2. http://site.layar.com/download/layar-on-your-android/
<script type="text/javascript"> AutoSourcing.setString(5997 ,"안드로이드사이드", "pineal", "http://www.androidside.com/bbs/board.php?bo_table=B49&wr_id=5900#c_5997"); </script>
증강현실에 관한 사이트를 소개합니다.

1. http://www.augmentedplanet.com/tag/android/
2. http://en.wikipedia.org/wiki/Augmented_reality
3. http://techcrunch.com/2010/03/30/tagwhat/
4. http://www.bango29.com/go/blog/2010/mixare-augmented-reality-tutorial
5. http://www.slideshare.net/chuazy/codeandroid-meet-up-slides-augmented-reality-on-android
<script type="text/javascript"> AutoSourcing.setString(5999 ,"안드로이드사이드", "pineal", "http://www.androidside.com/bbs/board.php?bo_table=B49&wr_id=5900#c_5999"); </script>
[출처] 안드로이드사이드 - http://www.androidside.com/bbs/board.php?bo_table=B49&wr_id=5900#c_5997
0. 공통 Control
* (정의, 예제)
http://tigerwoods.tistory.com/13 (ListView, Grid, Spinner, AutoCompleteText)
http://tigerwoods.tistory.com/8 (TextView, Button, ImageView, EditText)
http://tigerwoods.tistory.com/9 (CheckBox, RadioBox, View)
http://mainia.tistory.com/555
1. Wheel UI (TimePicker)
http://blog.naver.com/lowmans/100119434283
2. 프로그레스바
http://blog.naver.com/dong277/130082401863
http://blog.naver.com/lowmans/100117759291 (Color 바꾸기)
http://blog.naver.com/lowmans/100114627314 (Customize)
http://blackzaket.blog.me/80111754711 (Customize - android:progressDrawable)
http://blog.naver.com/treebystream/130088370727 (모양 바꾸기)
http://blackzaket.blog.me/80111731277
http://blackzaket.blog.me/80107165363 (Style)
http://blog.naver.com/free2824/60101564615 (Dialog로 처리하기)
http://blog.naver.com/macyoo/100110963202
http://blog.naver.com/davincigo/60123097055 (View 처리)
http://stackoverflow.com/questions/3841231/custom-progressbar-widget
http://www.helloandroid.com/tutorials/custom-view-horizontalslider (2.2이상만 지원됨)
3. GridView
* (정의, 예제)
http://tkdcodl.blog.me/20110071407
http://blog.naver.com/monster7575/100120442069 (달력)
http://blog.naver.com/monster7575/100120383050
4. Tab
* (정의, 예제)
http://tigerwoods.tistory.com/19 (Activity)
http://mainia.tistory.com/550 (TabActivity)
http://mainia.tistory.com/576 (탭에 색상, 아이콘 넣기)
final TabHost tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("list1")
.setContent(new Intent(this, ListSampleView1.class)));

tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("list2")
.setContent(new Intent(this, ListSampleView2.class)));

// 클릭할때 마다 리플레쉬
tabHost.addTab(tabHost.newTabSpec("tab3")
.setIndicator("destroy")
.setContent(new Intent(this, Controls2.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
}
http://tkdcodl.blog.me/20108993501
http://fanpro.springnote.com/pages/4939743 (TabHost)
http://blog.naver.com/dualwield/100101331822
* http://vicfaith.blog.me/150101935866
http://loadtodream.blog.me/30093253283
http://loadtodream.blog.me/30093252776
http://loadtodream.blog.me/30083487871
5. RatingBar
http://blog.naver.com/dong277/130082403206
http://blog.naver.com/yell301/130093628649
6. SeekBar
http://blog.naver.com/dong277/130082402679
http://blog.naver.com/yell301/130093628467
http://blog.naver.com/ween8/50082179209
7. DatePicker, TimePicker
* (정의, 예제)
http://tigerwoods.tistory.com/18 (AnalogClock, DigitalClock 포함)
http://loadtodream.blog.me/30083429862
http://blog.naver.com/dong277/130082400398
http://blackzaket.blog.me/80113146563
http://blackzaket.blog.me/80109228225
http://blog.naver.com/ween8/50082178142 (timePicker)
8. RadioButton
http://blog.naver.com/dong277/130082393375
http://loadtodream.blog.me/30083430679
9. ToggleButton
http://blog.naver.com/dong277/130082392223
http://loadtodream.blog.me/30083430746
10. CheckBox
* (정의, 예제)
http://blog.naver.com/dong277/130082391976
http://loadtodream.blog.me/30083430610
http://blackzaket.blog.me/80109666531 (별모양)
11. Button, ImageButton
http://blog.naver.com/dong277/130082390671
http://fanpro.springnote.com/pages/4789609 (xml로 배경 지정하기)
http://fanpro.springnote.com/pages/4789555 (Dim 처리)
http://fanpro.springnote.com/pages/4792129 (소스 코드로 Selector)
http://blog.daum.net/hopefullife/77 (버튼 Object, 소스상에서 구성 )
http://loadtodream.blog.me/30083429962 (ImageButton)
http://blog.naver.com/monster7575/100107732535 (버튼 동적 생성)
* http://blog.daum.net/hopefullife/102 (텍스트 버튼) : 다국어 처리
12. Spinner
http://blog.naver.com/dong277/130082388522
http://blog.daum.net/liberalis/13222359 (Spinner, ArrayAdapter)
createFromResource, setDropDownViewResource
13. MultiAutoCompleteTextView
http://blog.naver.com/dong277/130082375733
14. AutoCompleteTextView
http://blog.naver.com/dong277/130082374618
http://blog.daum.net/liberalis/13222360 (Spinner, ArrayAdapter)
http://loadtodream.blog.me/30093254642
http://loadtodream.blog.me/30083431240
15. Dialog
http://blog.naver.com/dong277/130081283492
http://blog.naver.com/mar189/10079860472
http://mainia.tistory.com/588 (다이얼로그 내용 및 폰트 변경)
http://mainia.tistory.com/589 (다이얼로그에 들어가는 텍스트 폰트 변경)
Dialog dlg = new Dialog(context);
dlg.setTitle(context.getResources().getString(R.string.notsupport));
dlg.setCanceledOnTouchOutside(true); // dialog 바깥쪽 클릭하면 사라짐
dlg.show();
16. AlaramManager
http://blackzaket.blog.me/80113159648
http://blackzaket.blog.me/80111475624
http://blackzaket.blog.me/80111475418
http://blackzaket.blog.me/80111474278
http://blackzaket.blog.me/80122708922 (투명 적용하기)
16. AlertDialog
* (정의, 예제)
http://tigerwoods.tistory.com/22
http://loadtodream.blog.me/30093255472
http://blog.daum.net/hopefullife/78
http://fanpro.springnote.com/pages/4789567
* (예제 소스)
http://utime.blog.me/150091024547
http://blog.naver.com/yell301/130093970326
http://blog.naver.com/kippee/130047983978 (타이틀 변경)
http://tkdcodl.blog.me/20108996953 (커스텀)
18. ProgressDialog
http://blog.naver.com/free2824/60101564615
19. PopupWindow
* http://vicfaith.blog.me/150101642706
http://blog.naver.com/macyoo/100111065523
20. Compound Control
http://vicfaith.blog.me/150086715980
21. Toast
* (정의, 예제)
http://tigerwoods.tistory.com/21
http://tkdcodl.blog.me/20108996161
http://blog.daum.net/hopefullife/79 (동적 생성)
0. 리소스 사용 가이드
http://blog.naver.com/monster7575/100120957722
http://woosa7.tistory.com/entry/안드로이드-Resource-형식과-저장-위치
1. Asset과 Raw 차이점
http://blog.naver.com/lowmans/100120610211
http://underclub.tistory.com/340
2. Dimension, Color
xml값에 dimension값을 저장하고 app에서 불러오는 법

* 저장
values/ 밑에 적당한 xml파일 만들고 아래와 같이 필요한 값을 저장

<?xml version="1.0" encoding="UTF-8"?>
<resources>
<dimen name="board_margin">8px</dimen>
<dimen name="tile_size">38px</dimen>
</resources>

* 불러오기

boardMargin = context.getResources().getDimensionPixelSize(R.dimen.board_margin);
tileSize = context.getResources().getDimensionPixelSize(R.dimen.tile_size);
* xml에 color설정하는 법
http://developer.android.com/intl/fr/guide/topics/resources/available-resources.html
res/values/colors.xml이라는 파일을 만들고 아래와 같이 지정하면 된다.
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<color name="dim">#77000000</color>
<color name="transparent">#00000000</color>
</resources>
이렇게 지정한 color는 android:textColor="@color/dim" 과 같은 식으로 사용이 가능하다.
* xml에 color state list 설정하는 법
http://androidappdocs-staging.appspot.com/reference/android/content/res/ColorStateList.html
color를 xml에 지정하기 위해서는 res/color라는 폴더를 만든 후 xml파일을 생성하면 된다.
ex) res/color/font_set_a.xml 아래의 예는
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="#cccccc" />
<item android:state_pressed="true" android:color="#cccccc" />
<item android:state_active="true" android:color="#333333" />
<item android:color="#333333" />
</selector>
이렇게 선언한 셀렉터는 "@color/font_set_a"와 같이 사용이 가능하다.
3. 자주 쓰이는 속성
android:orientation="vertical" | "horizontal"
layout에서 사용되며 element들을 어떤 방향으로 삽입할지 결정

android:layout_width="fill_parent" | "wrap_content"
layout의 넓이 : 필수항목임

android:layout_height="fill_parent" | "wrap_content"
layout의 높이 : 필수항목임

android:background="@drawable/bg_background"
배경이미지를 지정함, 색깔도 지정가능 #rrggbb

android:gravity="center"
정렬방식 left, right, center, 등등등 종류많음

android:layout_marginBottom="20px"
margin은 구성요소와 외부 요소와의 간격이다.

android:padding="20px"
padding은 내부에 들어오는 구성요소와의 간격이다.

android:id="@+id/load"
element에 findViewById에서 사용할 id를 지정한다.

android:text = "@string/load"
텍스트를 지정

android:textColor="#FFFFFFFF"
텍스트의 칼라를 지정

android:textColorHighlight="#000000"
포커스되었을때 칼라인거 같은데 안먹네?? ㅡㅡ;; 몰게따 나중에 테스트해봐야할 듯

android:textSize="30px"
텍스트의 크기를 지정

android:scaleType="center"
이미지뷰에서 사용하는데 이넘이 default로 현재 뷰사이즈에 맞게 이미지를 리사이즈한다. 이를 막고 원래 사이즈대로 보여줄려면 위의 항목을 지정하면 됨

android:scrollY="9px"
강제로 뷰의 위치를 이동시킴
4. 리소스
http://blackzaket.blog.me/80114953912
http://vicfaith.blog.me/150087626628 (xml, 소스 사용법)
5. Font
* http://blog.naver.com/neo__one/90079009814 (Typeface, setTypeface)
http://samse.tistory.com/entry/안드로이드-폰트-바꾸기(Typeface.createFromAsset)http://blog.naver.com/dishyguy/100105708944
http://loadtodream.blog.me/30083965985
http://mainia.tistory.com/469 (문자열 표현 방법, 폰트 사이즈, 컬러)
6. File
* http://blog.naver.com/neo__one/90074215687 (문자열 > byte, byte > 문자열)
http://vicfaith.blog.me/150087519924 (FileWriter)
http://loadtodream.blog.me/30083966043 (asset 텍스트 파일 읽기)
* (Zip 압축, 해제)
http://nuninaya.tistory.com/550
http://loadtodream.blog.me/30083966111
public static void unzip(String path, String fileName) {

int current_count=0;

try {
FileInputStream fis = new FileInputStream(path + fileName);

ZipInputStream zis = new ZipInputStream(fis);
ZipEntry ze;
while ((ze = zis.getNextEntry()) != null) {
System.out.println(ze.getName());

OutputStream out = new FileOutputStream(path + ze.getName());
byte[] buf = new byte[(int) ze.getSize()];
int len;
zis.skip(0);

while ((len = zis.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.close();
zis.closeEntry();
//deletefile(path,ze.getName());
}
zis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

public static void deletefile(String path, String fileName){
File delet = new File(path + fileName);
delet.delete();
}
* (파일 입출력)
http://blog.naver.com/yell301/130093800697
1. Adapter
http://blog.naver.com/yell301/130093467457 (정의)
http://blog.naver.com/yell301/130093864725
http://samse.tistory.com/entry/Sample-Sync-Adapter-테스트-방법
<s><s>http://sje0114121.blog.me/150089108775</s> (예제)</s>
<s>http://sje0114121.blog.me/150089117964</s>
<s>http://sje0114121.blog.me/150102418890</s>
<s></s>
>>>
<s>
</s>
http://blog.naver.com/lowmans/100108920037 (Custom)
http://tkdcodl.blog.me/20109340406
http://blog.naver.com/davincigo/60117454581 (커스텀 ArrayAdapter, 예제)
* <s>http://lhk3832.blog.me/10084606349</s> (ArrayList, ArrayAdapter, setOnKeyListener)
1. EditText
http://blog.naver.com/dong277/130082373237
http://blog.naver.com/lowmans/100109533387 (Truncate)
http://fanpro.springnote.com/pages/4817417
1. TextView
http://blog.naver.com/dong277/130082371894
> 주소형식에 대한 자동 link 생성
autoLink = "none" : 링크 지원 X
= "email" : 이메일 주소
= "map" : 지도의 주소
= "web" : 웹 주소
= "phone" : 전화번호 인식
= "all" : 상기 패턴 모두
= "phone|web"

> Shadow 주기 및 장평
shadowColor = "Color" : shadow 색깔
shadowDx = "float" : 그림자와 본 글자의 거리 X
shadowDy = "float" : 그림자와 본 글자의 거리 Y
shadowRadius = "float" : 그림자의 크기
textScaleX = "float" : 높이에 대한 폭의 비율로 장평 조절 ex) 2 : 뚱뚱이, 0.4 : 날씬이

> Text 줄간격
lineSpacingMultiplier = "float" : 줄간격 1 기준
lineSpacingExtra = "integer unit" : 줄간격 추가로 주기

> 수평, 수직 줄수 조정
lines = "integer" : 강제로 integer 값만큼 높이를 강제로 차지
minLines = "integer" : wrap_content 여야만 한다.
maxLines = "integer" : wrap_content 여야만 한다.
ems = "integer" : 수평 크기를 EM 크기 기준으로
minEms = "integer" : wrap_content 여야만 한다.
maxEms = "integer" : wrap_content 여야만 한다.

2. TextView (bold, Italic, Underline)
*.xml 에서 정적으로 적용하는 방법
<string name="sitename"><b>MobilePlace</b></string>
*.java 에서 동적으로 적용하는 방법
String str= "Androes";
TextView tv = (TextView)findViewById(R.id.text);
tv.setText(Html.fromHtml("<b>" + str+ "</b>"));

3. Marquee 효과 예제
http://blog.naver.com/lowmans/100109533387
4. Text Font Customize
http://blog.naver.com/lowmans/100108806804
http://blog.naver.com/dong277/130082774391
5. 속성 및 메서드
http://blog.naver.com/lowmans/100114708601
http://blog.naver.com/lowmans/100109256351
http://fanpro.springnote.com/pages/4850527 (Canvas를 이용한 텍스트 출력)
http://fanpro.springnote.com/pages/4981161
6. 안드로이드 기본 색상과 Appearence
* http://vicfaith.blog.me/150095838312
* 기타
http://flytop.tistory.com/entry/TextView를-EditText처럼-만들어서-사용하기
1. Custom View
http://samse.tistory.com/entry/Custom-View-만들기
<s>http://sje0114121.blog.me/150089122240</s>
http://sje0114121.blog.me/150089165178
오버라이드할 메소드 리스트
1. 생성관련
생성자 : code상으로 생성되는 생성자와 layout파일로부터 inflate되면서 생성되는 경우에 호출되는 생성자 두가지가 있으며 두번째 생성자는 layout파일에 정의되어 있는 속성들을 파싱하여 적용하는 부분이 추가로 코딩되어야 한다.
onFinishInflate : layout XML파일로부터 뷰와 그의 모든 차일드들이 inflate된 후에 호출됨. 이 때 추가로 어떤 작업을 하고자 하는 경우 여기서 하면 된다.
2. Layout관련
onMeasure(int, int) : 부모에서 계산된 width, height 스펙값내에서 뷰와 차일드들의 크기를 계산하여 적용한다.
onLayout(boolean, int, int, int, int) : 뷰가 size와 postion을 모든 차일드에 지정해야 할경우 호출된다.
onSizeChanged(int, int, int, int) : 뷰의 size가 변경된 후 호출된다.
3. 그리기관련
onDraw(Canvas) : View가 내용을 다시 그려야 할 때 호출된다.
4. Event 처리
onKeyDown(int, KeyEvent) : 새로운 key event가 발생하였을 때 호출된다.
onKeyUp(int, KeyEvent) : key up event가 발생하였을 때 호출된다.
onTrackballEvent(MotionEvent) : 트랙볼 모션이벤트가 발생하였을 때 호출된다.
onTouchEvent(MotionEvent) : 터치스크린의 모션이벤트가 발생하였을 때 호출된다.
on_focusChanged(boolean, int, Rect) : View가 포커스를 얻거나 잃었을 때 호출된다.
onWindowFocusChanged(boolean) : View를 포함하고 있는 윈도우가 포커스를 얻거나 잃었을 때 호출된다.
5. Attach관련
onAttachedToWindow() : View가 Window에 attach되었을 때 호출된다.
onDetachedFromWindow() : View가 Window로부터 detach되었을 때 호출된다.
onWindowVisibilityChanged(int) : View를 포함하는 window의 visibility가 변경되었을 때 호출된다.
>>>
http://blog.naver.com/yell301/130093583374 (예제)
http://javaexpert.tistory.com/122
http://blog.naver.com/zzbung/10097681748 (main.xml 사용하지 않음)
http://blog.naver.com/lowmans/100114202198 (생성자)
http://blog.naver.com/lowmans/100113662813 (이벤트 처리)
http://blog.naver.com/lowmans/100113911560 (캔버스 라운드 처리)
http://blog.naver.com/lowmans/100108920367 (View Canvas)
http://fanpro.springnote.com/pages/4789627 (ViewFlipper)
http://www.androidpub.com/android_dev_info/82480 (모서리가 둥근 View)
* http://blog.naver.com/neo__one/90072235870 (Text, ImageView, Java 소스에서 생성)
* ImageView
http://mainia.tistory.com/471 (ImageView 레이아웃 사용법)
http://mainia.tistory.com/473 (ScaleType 종류)
 
ImageView iv = new ImageView(this);
Bitmap orgImage = BitmapFactory.decodeResource(getResources(), R.drawable.news);
Bitmap resize = Bitmap.createScaledBitmap(orgImage, 300, 400, true);
iv.setImageBitmap(resize);
 
<pre>
ImageView iv = new ImageView(this);
BitmapFactory.Options bo = new BitmapFactory.Options();
bo.inSampleSize = 8;
Bitmap bmp = BitmapFactory.decodeFile(thumbsDataList.get(position), bo);
iv.setImageBitmap(bmp);
 
android:adjustViewBounds: 이미지가 표현하고자 하는 레이아웃보다 클 때 비율유지여부<?XML:NAMESPACE PREFIX = O />
android:cropToPadding: 이미지를 잘라 낼것인지에 대한 것
android:maxHeight : 최대 높이
android:maxWidth : 최대 넓이
android:scaleType : 이미지의 표시를 위한 크기변환 및 채워넣기 옵션이다
android:src : image 주소를 설정하는데 리소스의 그림은@drawable/test01
android:tint : 착색과 관련된 다양한 옵션
</pre>
2. View의 getWidth, getHeight
http://blog.naver.com/lowmans/100120246514
3. View Stub
http://blog.naver.com/lowmans/100118520993
http://huewu.blog.me/110083584612
http://blog.naver.com/sancholok/30093455460 (예제)
4. Canvas
http://blog.naver.com/lowmans/100114514119 (자주 사용하는 Method)
5. View 설명
http://blog.naver.com/cymkan/140112806961 (View 계층 구조)
http://xxxh4ck.com/140103005063
http://blog.naver.com/lowmans/100114213271
VISIBLE, INVISIBLE, GONE
* ViewFillper
http://blackzaket.blog.me/80119902252 (애니메이션)
http://tigerwoods.tistory.com/23 (예제)
http://blog.naver.com/cejing/70090422633
http://loadtodream.blog.me/30093257956
settingFliper.setInAnimation(AnimationUtils.loadAnimation(CameraActivity.this, R.anim.slide_in_bottom));
settingFliper.setOutAnimation(AnimationUtils.loadAnimation(CameraActivity.this, R.anim.slide_out_bottom));
settingFliper.showPrevious();
settingFliper.showNext();
6. interface 추가
http://sje0114121.blog.me/150089165178
1. 데이터 저장, 검색, 공유
* (정의 및 PreferenceScreen)
http://tigerwoods.tistory.com/31
http://woosa7.tistory.com/entry/안드로이드-Preference-옵션-설정값-저장하기
http://loadtodream.blog.me/30093665958
SharedPreferences pref = getSharedPreferences("SaveState", MODE_PRIVATE);
SharedPreferences.Editor edit = pref.edit();
edit.putInt("y", y);
edit.commit();
SharedPreferences pref = getSharedPreferences("SaveState", MODE_PRIVATE);
y = pref.getInt("y", 50);
http://blog.naver.com/leonkese/100108574990 (Sqlite 포함)
* (외부에서 Access)
http://lhk3832.blog.me/10084016652 (SharedPreferences, createPackageContext)
1. Activity
* (정의)
http://tigerwoods.tistory.com/30
http://blog.naver.com/monster7575/100107295227 (라이프 사이클 및 관련 클래스)
http://blackzaket.blog.me/80112244331
http://blog.naver.com/anywars/140092339423
http://blackzaket.blog.me/80118661722 (flag 4가지 타입)
http://blackzaket.blog.me/80118503506 (setFlags 옵션)
http://blackzaket.blog.me/80107787581 (액티비티와 Task)
* activity호출
Intent intent = new Intent(this, GameMenu.class);
startActivityForResult(intent, 0);

* 파라메터 생성 및 activity의 종료
Intent i = new Intent();
Bundle bundle = new Bundle();
bundle.putInt("result", result);
i.putExtras(bundle);
setResult(RESULT_OK, i);
finish();

* 후처리
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (data == null) return;
Bundle bundle = data.getExtras();
int result = bundle.getInt("result");
// 서브 액티비티 호출
public static final int returncode = 1;
startActivityForResult (intent, returncode);
// 결과 리턴
setResult(Activity.RESULT_OK, intent);
http://blog.naver.com/leonkese/100108575691 (인텐트,브로드캐스트,어댑터,인터넷)
http://blog.naver.com/dong277/130081216404
http://blackzaket.blog.me/80112389918 (커스텀 다이얼로그 Activity)
android:theme="@android:style/Theme.Dialog"
* http://lhk3832.blog.me/10091902089 (다른 프로젝트에서 Activity 호출)
2. Task 관리
http://blog.naver.com/lowmans/100112102603 (Task 속성)
http://underclub.tistory.com/283 (Stack 제거)
3. 테마 적용 (Theme)
http://vicfaith.blog.me/150087848762 (스타일, 테마)
http://blog.naver.com/dong277/130082736736
액티비티의 테마지정(1)
액티비티는 기본적으로 title과 body로 구분되는 불투명한 스타일이다.
이를 변경할 수 있는데 해당 스타일은 아래와 같으며 manifest.xml의 <activity .../> 내에 지정하면 된다.
android:theme="@android:style/Theme.NoTitleBar" 타이틀바 제거
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 타이틀바 + 인디케이터 제거
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" 타이틀바 + 인디케이터 제거 + 투명하게 설정
액티비티의 테마를 xml로 지정하기(2)
values/styles.xml에 아래와 같이 속성을 지정
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="WebTheme" parent="android:Theme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowBackground">@android:color/white</item>
</style>
activity의 속성에 theme를 지정
android:theme="@style/WebTheme"
<activity android:name=".GameMenu"
android:theme="@android:style/Theme.Translucent"
android:launchMode="standard"></activity>
http://blackzaket.blog.me/80111827516 (lightTheme)
http://blackzaket.blog.me/80108049301 (안드로이드 테마)
http://woosa7.tistory.com/entry/안드로이드-내장된-Dialog-Box-Theme-사용하기
* (배경 투명 - 소스, Manifest 파일 지정 필요)
http://blackzaket.blog.me/80101717853
http://loadtodream.blog.me/30083485623
4. 스타일 (Style)
http://blog.naver.com/dong277/130082075642
http://blog.daum.net/liberalis/13222364 (ListView Style)
스타일 설정
위와 같이 선언한 색상들과 폰트크기등을 합쳐서 스타일을 만들 수가 있는데
res/values/styles.xml파일을 생성 후
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="font_set_a">
<item name="android:textColor">@color/font_set_a</item>
<item name="android:textSize">36px</item>
</style>
<style name="font_set_b">
<item name="android:textColor">@color/font_set_a</item>
<item name="android:textSize">24px</item>
</style>
</resources>
위와 같이 묶어서 스타일을 지정할 수 있다. 이렇게 만든 스타일은 style="@style/font_set_a"와 같은식으로 사용가능하다.
5. 화면 안꺼지게 하기
http://blog.naver.com/lowmans/100111823178
final Window wnd = getWindow();
if(wnd != null)
wnd.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
6. 화면 어둡게 처리 하기
http://blackzaket.blog.me/80101581992 (WindowManager, dimAmount)
7. 배경 흐려지는 기능 방지
http://blog.naver.com/free2824/60119679434
1. 브로드캐스트 리시버
http://blog.naver.com/leonkese/100108575691 (xml, 코드 삽입 가능)
http://sje0114121.blog.me/150089187110
http://fanpro.springnote.com/pages/4807023
http://blog.naver.com/ljhzzang0218/10089259265
http://blackzaket.blog.me/80115147884 (BR, Battery, SDCarrd)
sendBroadcast(intent);
IntentFilter filter = new IntentFilter(xxx);
registerReceiver(receiver, filter);
unregisterReceiver();
2. Action 정의
http://miksnug.pe.kr/20
3. 배터리 리시버
http://fanpro.springnote.com/pages/4819433
private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {

int level = intent.getIntExtra("level", 0);
int scale = intent.getIntExtra("scale", 100);

mBatteryLevel.setSummary(String.valueOf(level * 100 / scale) + "%");

int plugType = intent.getIntExtra("plugged", 0);
int status = intent.getIntExtra("status",BatteryManager.BATTERY_STATUS_UNKNOWN);
String statusString;
if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
statusString = getString(R.string.battery_info_status_charging);
if (plugType > 0) {
statusString = statusString + " " + getString(
(plugType == BatteryManager.BATTERY_PLUGGED_AC)
? R.string.battery_info_status_charging_ac
: R.string.battery_info_status_charging_usb);
}
} else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) {
statusString = getString(R.string.battery_info_status_discharging);
} else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
statusString = getString(R.string.battery_info_status_not_charging);
} else if (status == BatteryManager.BATTERY_STATUS_FULL) {
statusString = getString(R.string.battery_info_status_full);
} else {
statusString = getString(R.string.battery_info_status_unknown);
}
mBatteryStatus.setSummary(statusString);
}
}
};
registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
....
unregisterReceiver(mBatteryInfoReceiver);
1. Layout
* (정의, 예제)
http://sje0114121.blog.me/150089114161
http://tkdcodl.blog.me/20108992414
http://blog.naver.com/dong277/130082743196
http://tigerwoods.tistory.com/10 (LinearLayout)
http://tigerwoods.tistory.com/11 (RelativieLayout)
http://blog.daum.net/hopefullife/98 (아이폰 툴바 형태 레이아웃)
http://blog.daum.net/hopefullife/95 (투명 레이아웃)
http://samse.tistory.com/entry/articles-of-Layout-Tricks
>>>
http://sje0114121.blog.me/150089055388 (리소스 외부화 하기)
http://blog.naver.com/leonkese/100108574438 (개념 및 xml, 소스 활용)
http://blog.naver.com/dythmall/30096086151 (include, 재활용)
http://blog.naver.com/dong277/130082074508
http://blog.naver.com/heehow/140117854722 (xml 파일 정렬)

* (layout_inflater 활용 방법)
http://blog.naver.com/yell301/130093925695
http://www.androes.com/114
http://fanpro.springnote.com/pages/4789615
* <s>http://lhk3832.blog.me/10084836965</s> (LayoutInflater.from AlertDialog)

http://www.androes.com/43 (자바 코드로 속성 변경 하기)
http://blog.naver.com/lowmans/100108746683 (RelativeLayout 자바 코드로 구성)
addRule
http://blog.naver.com/dong277/130082773303 (SlidingDrawer)
http://blog.naver.com/dong277/130082074960 (xml 파일로 접근하기)
http://blog.naver.com/dong277/130082074089 (자원의 참조)
http://blog.naver.com/dong277/130082073605 (openRawResource(R.raw.abc))
http://blog.naver.com/dong277/130082073336 (getXml)
http://blog.naver.com/dong277/130082010409 (리소스 관리)
* 동적으로 Layout 추가
http://blog.naver.com/dong277/130081380029 (layout 동적 생성)
* http://vicfaith.blog.me/150088534852
http://fanpro.springnote.com/pages/4789613 (커스텀 레이아웃)
<about relative layout>
http://android-developers.blogspot.com/2009/02/android-layout-tricks-1.html
<about include>
http://www.curious-creature.org/2009/02/25/android-layout-trick-2-include-to-reuse/
<about merge>
http://android-developers.blogspot.com/2009/03/android-layout-tricks-3-optimize-by.html
http://blackzaket.blog.me/80120160660 (사용자 속성값 정의)
http://blackzaket.blog.me/80120160413 (커스텀 위젯 xml 속성 정의)
* selector
http://blackzaket.blog.me/80102798903 (이미지 View 커스텀화 : selector)
http://blog.naver.com/cejing/70086168826 (Button 클릭시 이미지 변경 : selector)
android:background="@drawable/arrowback", arrowback.xml 로 정의
http://blackzaket.blog.me/80102798114
http://blackzaket.blog.me/80102793044
<<<
* Java 소스 코드로 레이아웃 추가, 변경
http://blog.naver.com/monster7575/100108280958
http://blog.naver.com/neo__one/90075345343 (FrameLayout)
http://blog.naver.com/neo__one/90075106751 (RelativieLayout)
http://blog.naver.com/neo__one/90075031148 (LinearLayout)
http://blog.naver.com/neo__one/90074005977 (LinearLayout)
http://loadtodream.blog.me/30083423128
* (테이블 레이아웃)
http://tigerwoods.tistory.com/12 (정의)
http://blog.naver.com/macyoo/100103656812 (정의)
http://blog.naver.com/macyoo/100103656666
http://loadtodream.blog.me/30083429602
http://blog.naver.com/monster7575/100111878123 (코너 둥글게)
* Linkify
http://blog.naver.com/leonkese/100108575691 (MatchFilter, TransfoemFilter)
Linkify.addLinks( view, Linkify.WEBURLS | Linkify.EMAIL_ADDRESS);
android:autoLink="phone|email"
* Horiozontal 한줄 그리기
http://vicfaith.blog.me/150091414042
* 예제
http://blog.naver.com/yell301/130093015470
레이아웃에 Ondraw가 default로 막혀 있음. 풀어 주는 함수
setWillNotDraw(false);
* Selector 사용법
이미지를 이런식으로 xml로 구성한다음
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/in_button01" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/out_button01" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/out_button01"/>
<item android:drawable="@drawable/in_button01"/>
<!--<item android:color="@color/testcolor5"/>
--></selector>


이미지 버튼이 있는 xml에서
<ImageButton android:id="@+id/mImageButton01"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/main_button1"/>
3. XML 속성 지정
http://fanpro.springnote.com/pages/5306953 (칼라, 스타일 지정)
http://blog.naver.com/lowmans/100114342690 (fill_parent - match_parent)
4. Shape 지정
http://blog.naver.com/macyoo/100107728260
5. NoTitle, Status Bar (x)
타이틀바 감추기
http://blog.daum.net/hopefullife/82
http://blog.naver.com/lowmans/100114554935 (statusbar, title bar 숨기기)
android:theme="@android:style/Theme.NoTitleBar"
requestWindowFeature(Window.FEATURE_NO_TITLE);
http://loadtodream.blog.me/30093257865 (타이틀바에 아이콘 삽입)
requestWindowFeature(Window.FEATURE_RIGHT_ICON);
setFeatureDrawableResource(Window.FEATURE_RIGHT_ICON, R.drawable.icon);
상태바 감추기
http://loadtodream.blog.me/30093257771
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
6. Sliding Drawer (하단 슬라이딩)
* http://loadtodream.blog.me/30093257440
7. Gravity
http://loadtodream.blog.me/30093254506
1. 인텐트
* (정의)
http://blackzaket.blog.me/80111769520
http://blog.naver.com/yell301/130093869386 (예제 포함)
http://blog.naver.com/davincigo/60099384644
http://loadtodream.blog.me/30083484714
http://blog.naver.com/neo__one/90072374057 (Action, Category 정의)
* Object 넘기기
void putSerializable(String key, Serializable value)
Serializable getSerializable(String key)

Bundle extras = new Bundle();
extras.putSerializable("aa", Object);
intent.putExtras(extras);
...
Object y = getIntent().getExtras().get("aa");
intent.setClassName(this, MyActivity.class.getName());
http://blog.naver.com/leonkese/100108575691 (암시적, 명시적)
http://blackzaket.blog.me/80111774148 (암시적)
http://blog.naver.com/leonkese/100108563480
http://sje0114121.blog.me/150089184729
http://sje0114121.blog.me/150089169853
* (이미지, 영상, 전화 번호 가져오기)
http://blackzaket.blog.me/80111761033 (전화번호, 주소 가져오기)
http://mainia.tistory.com/484
Intent i = new Intent(Intent. ACTION_GET_CONTENT);
i.setType("vnd.android.cursor.item/phone_v2");
startActivityForResult(i, 0);
Intent i = new Intent(Intent.ACTION_PICK); // ACTION_PICK 액션을 사용하는 예
i,setData(Uri.parse(“content://com.android.contacts/data/phones”));
startActivityForResult(i, 0);
* (암시적 사용법)
http://blackzaket.blog.me/80113088779
http://blog.naver.com/senjuny/150090059759
http://blackzaket.blog.me/80113089248
2. Intent Filter
* (정의)
http://loadtodream.blog.me/30083485107
http://fanpro.springnote.com/pages/4844113 (Intent-Filter)
http://blog.daum.net/hopefullife/98 (Intent-Filter data 선언)
* (패키지 추가 삭제시 발생)
http://blackzaket.blog.me/80113164834
http://blog.naver.com/macyoo/100109039094
* (BOOT_COMPLETED)
http://blog.naver.com/ljhzzang0218/10094108229
* (인텐트 필터 우선순위 (android:priority="2"))
http://blog.naver.com/lowmans/100116173133
>>> 연락처 Intent
연락처 조회
 intent = new Intent(Intent.ACTION_VIEW,
 Uri.parse("content://contacts/people/" +
 String.valueOf(contact.getId())));
 startActivity(intent);
연락처 등록
 intent = new Intent(Intent.ACTION_INSERT,
 Uri.parse("content://contacts/people"));
 startActivity(intent);
연락처 수정
 intent = new Intent(Intent.ACTION_EDIT,
 Uri.parse("content://contacts/people/" +
 String.valueOf(contact.getId())));
 startActivity(intent);
<ul> <li style="font-size: 9pt;">연락처 삭제</li></ul>
 intent = new Intent(Intent.ACTION_DELETE,
 Uri.parse("content://contacts/people/" +
 String.valueOf(contact.getId())));
 startActivity(intent);
 
<h3>>>> 전화 Intent</h3><ul> <li style="font-size: 9pt;">권한 설정 (AndroidManifest.xml) </li></ul><pre>
 전화 걸기  : CALL_PHONE = "android.permission.CALL_PHONE"
 긴급 통화  : CALL_PRIVILEGED =
 "android.permission.CALL_PRIVILEGED"
 폰 상태 읽기  : READ_PHONE_STATE =
 "android.permission.READ_PHONE_STATE"
 폰 상태 수정  : MODIFY_PHONE_STATE =
 "android.permission.MODIFY_PHONE_STATE"
 브로드케스팅 수신 : PROCESS_OUTGOING_CALLS =
 "android.permission.PROCESS_OUTGOING_CALLS"
 전화 걸기 이전  : ACTION_NEW_OUTGOING_CALL =
 "android.intent.action.NEW_OUTGOING_CALL"
 
</pre><ul> <li style="font-size: 9pt;">전화걸기 화면 </li></ul><pre>
 Intent intent = new Intent(Intent.ACTION_DIAL,
 Uri.parse("tel:" + TelNumber));
 startActivity(intent);
 
</pre><ul> <li style="font-size: 9pt;">전화걸기 </li></ul><pre>
 Intent intent = new Intent(Intent.ACTION_CALL,
 Uri.parse("tel:" + TelNumber));
 startActivity(intent);
 
<h3>>>> SMS Intent</h3><ul><span style="font-size: 9pt;"> </span>
권한 설정 (AndroidManifest.xml)
</ul><pre>
 수신 모니터링  : RECEIVE_SMS = "android.permission.RECEIVE_SMS"
 읽기 가능  : READ_SMS = "android.permission.READ_SMS"
 발송 가능  : SEND_SMS = "android.permission.SEND_SMS"
 SMS Provider로 전송 : WRITE_SMS = "android.permission.WRITE_SMS"
  : BROADCAST_SMS = "android.permission.BROADCAST_SMS"
 
</pre><ul><span style="font-size: 9pt;"> </span>
SMS 발송 화면
</ul><pre>
 Intent intent = new Intent(Intent.ACTION_VIEW);
 intent.putExtra("sms_body", "The SMS text");
 intent.setType("vnd.android-dir/mms-sms");
 startActivity(intent);
 
</pre><ul><span style="font-size: 9pt;"> </span>
SMS 보내기
</ul><pre>
 Intent intent = new Intent(Intent.ACTION_SENDTO,
 Uri.parse("smsto://" + contact.getHandphone()));
 intent.putExtra("sms_body", "The SMS text");
 intent.setType("vnd.android-dir/mms-sms");
 startActivity(intent);
 
<h3>>>> 이메일 Intent</h3><ul>
이메일 발송 화면
</ul><pre>
 Intent intent = new Intent(Intent.ACTION_SENDTO,
 Uri.parse("mailto:" + contact.getEmail()));
 startActivity(intent);
 
</pre><h3>>>> 브라우저 Intent</h3><ul>
Browser에서 URL 호출하기
</ul><pre>
 new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com/"));
 startActivity(intent);
 
</pre><ul>
브라우저에서 검색
</ul><pre>
 Intent intent = new Intent(Intent.ACT ION_WEB_SEARCH);
 intent.putExtra(SearchManager.QUERY, "검색어");
 startActivity(intent);
 
</pre><h3>>>> 지도 Intent</h3><ul>
지도 보기
</ul><pre>
 Uri uri = Uri.parse ("geo: 38.00, -35.03");
 Intent intent = new Intent(Intent.ACTION_VIEW, uri);
 startActivity(intent);
 
>>> 안드로이드 마켓 Intent
<span style="font-size: 9pt;"> </span>
안드로이드 마켓에서 Apps 검색
 Uri uri = Uri.parse("market://search?q=pname:전제_패키지_명");
 //--- 예) market://search?q=pname:com.jopenbusiness.android.smartsearch
 Intent intent = new Intent(Intent.ACTION_VIEW, uri);
 startActivity(intent);
 
<span style="font-size: 9pt;"> </span>
안드로이드 마켓의 App 상세 화면
 Uri uri = Uri.parse("market://details?id=전제_패키지_명");
 //--- 예) market://details?id=com.jopenbusiness.android.smartsearch
 Intent intent = new Intent(Intent.ACTION_VIEW, uri);
 startActivity(intent);
 
>>> 갤럭시S의 Intent
<span style="font-size: 9pt;"> </span>
패키지명과 클래스명으로 App 호출
 intent = new Intent(Intent.ACTION_MAIN);
 intent.setComponent(new ComponentName("패키지명", "전체_클래스명"));
 startActivity(intent);
 
 
전화, SMS
전화번호부 : com.android.contacts, com.sec.android.app.contacts.PhoneBookTopMenuActivity
<ul> <li>전화 : com.sec.android.app.dialertab, com.sec.android.app.dialertab.DialerTabActivity </li><li>최근기록 : com.sec.android.app.dialertab, com.sec.android.app.dialertab.DialerTabDialerActivity </li><li>메시지 : com.sec.mms, com.sec.mms.Mms </li></ul>
 
이메일 : com.android.email, com.android.email.activity.Welcome
일정 : com.android.calendar, com.android.calendar.LaunchActivity
인터넷 : com.android.browser, com.android.browser.BrowserActivity
 
Google의 Android용 앱
<ul> <li>검색 : com.google.android.googlequicksearchbox, com.google.android.googlequicksearchbox.SearchActivity </li><li>음성 검색 : com.google.android.voicesearch, com.google.android.voicesearch.RecognitionActivity </li><li>Gmail : com.google.android.gm, com.google.android.gm.ConversationListActivityGmail </li><li>지도 : com.google.android.apps.maps, com.google.android.maps.MapsActivity </li><li>위치찾기 : com.google.android.apps.maps, com.google.android.maps.LatitudeActivity </li><li>YouTube : com.google.android.youtube, com.google.android.youtube.HomeActivity </li><li>토크 : com.google.android.talk, com.google.android.talk.SigningInActivity </li><li>Goggles : com.google.android.apps.unveil, com.google.android.apps.unveil.CaptureActivity </li><li>Google 번역 : com.google.android.apps.translate, com.google.android.apps.translate.HomeActivity </li><li>Reader : com.google.android.apps.reader, com.google.android.apps.unveil.CaptureActivity </li><li>Voice : com.google.android.apps.googlevoice, com.google.android.apps.googlevoice.SplashActivity </li><li>Google 별지도 : com.google.android.stardroid, com.google.android.stardroid.activities.SplashScreenActivity </li></ul>
 
카메라 : com.sec.android.app.camera, com.sec.android.app.camera.Camera
TV : com.sec.android.app.dmb, com.sec.android.app.dmb.activity.DMBFullScreenView
 
Android 관리
<ul> <li>환경 설정 : com.android.settings, com.android.settings.Settings </li><li>작업 관리자 : com.sec.android.app.controlpanel, com.sec.android.app.controlpanel.activity.JobManagerActivity </li></ul>
 
마켓 : com.android.vending, com.android.vending.AssetBrowserActivity


출처 : http://www.jopenbusiness.com/tc/oss/entry/Android-Intent-%ED%99%9C%EC%9A%A9-%EC%82%AC%EB%A1%80
</pre></pre></pre>
<iframe style="DISPLAY: none" id="CommentFrm30101536396" height="0" src="" frameborder="0" width="100%" allowtransparency="allowTransparency" scrolling="no"></iframe>
1. 트위터
http://blog.naver.com/leonkese/100108721608
http://blog.naver.com/leonkese/100110552771
* 관련 사이트
http://blog.naver.com/yell301/130099688602
* (oauth 인증)
http://blackzaket.blog.me/80117372126
http://blog.naver.com/macyoo/100110022120
http://blog.naver.com/macyoo/100107249311 (야후, 구글)
2. 페이스북
3. 미투데이
http://blackzaket.blog.me/80119832126
4. Flickr
http://blackzaket.blog.me/80102785509

5. Open API
http://gtko.springnote.com/pages/4648573
http://blog.naver.com/dualwield/100096944414 (다음, 네이버)
http://blog.naver.com/davincigo/60118004003 (네이버)
http://dna.daum.net/apis/tistory (티스토리 api )
http://www.xmlrpc.com/metaWeblogApi (MetaWeblogApi 설명)
1. 개인서버에 repository 미러링
http://blog.daum.net/bluebread/10
2. 내장 APK 개발 방법
http://blackzaket.blog.me/80119538044
3. 2.3 하이라이트
http://blog.naver.com/free2824/60119650585
http://blog.naver.com/free2824/60119651881
4. 안드로이드 커널 소스 받기
http://blog.naver.com/macyoo/100104532470 (나중에)
5. 포팅
http://loadtodream.blog.me/30084352125
6. OS 관련 사이트
http://blog.naver.com/serimo/50093838236
7. Mac 개발 환경 설정
http://gnuteam.tistory.com/93
http://underclub.tistory.com/454
1. QR code
http://www.androes.com/107
2. 바코드 생성 사이트
http://www.scany.net/kr/generator/barcode.php
3. 관련 사이트
http://blog.naver.com/lowmans/100108811108
1. 그래픽
http://www.gisdeveloper.co.kr/621?category=29 (Path를 따라가는 텍스트)
http://blog.naver.com/neo__one/90072830414 (Path, Canvas)
http://blog.naver.com/davincigo/60116522474 (스트리밍, 웹캠 감시)
* Canvas 보편적 사용법
http://flytop.tistory.com/category/안드로이드폰
1. canvas.save(); à push
2. transform matrix;
3. draw;
4. canvas.restore(); à pop
http://flytop.tistory.com/entry/line을-점선으로-그리고싶을때
* 2D 그래픽
http://mainia.tistory.com/551
* (Surface)
http://loadtodream.blog.me/30083847195 (Action_Down)
http://loadtodream.blog.me/30083847135
http://loadtodream.blog.me/30083847097
http://loadtodream.blog.me/30083847048
http://loadtodream.blog.me/30083847018
http://loadtodream.blog.me/30083846932
<<<
* WallPaper
http://samse.tistory.com/entry/Blog-Live-wallpapers
http://samse.tistory.com/entry/Technical-Arcticle-2-Window-backgrounds-UI-Speed
>>>
2. gif 그리기
http://blog.naver.com/lowmans/100113892299
3. View ColorFilter
http://blog.naver.com/lowmans/100109463003 소스
mDrawable = getWallpaper();
if (mDrawable instanceof BitmapDrawable)
4. View Matrix
http://blog.naver.com/lowmans/100109461364
5. Volum
http://blog.naver.com/lowmans/100108919004
6. Drawable
http://vicfaith.blog.me/150096752946
7. OpenGL
http://blog.naver.com/macyoo/100109992008
http://blog.naver.com/davincigo/60122716406 (강좌)
http://blog.naver.com/monster7575/100121129895 (GLSurfaceView)
http://artbrain.co.kr/25 (OpenGL ES SurfaceView)
http://hyena0.tistory.com/420 (Cube Renderer)
http://loadtodream.blog.me/30084832455 (NDK)
1. 쓰레드 관리 - AsyncTask
* (정의, 예제)
http://samse.tistory.com/entry/자바-쓰레드의-resume-suspend-stop-구현
http://tigerwoods.tistory.com/26
http://tigerwoods.tistory.com/28
http://blog.naver.com/dythmall/30096230387
http://blog.daum.net/hopefullife/84 (AsyncTask)
>>>
http://blog.naver.com/dythmall/30096230387
http://blackzaket.blog.me/80107178838
http://www.androes.com/122 (runOnUiThread)
http://blog.naver.com/free2824/60119182153
* http://vicfaith.blog.me/150088517156 (쓰레드를 이용하여 UI 업데이트)
2. Handler
http://blog.naver.com/dythmall/30095829214 (runOnUiThread, Handler)
http://blog.naver.com/macyoo/100110962123
runOnUiThread(new Runnable() {
@Override
public void run() {
함수 처리
}
};
mHandler.post(new Runnable() {
@Override
public void run() {
함수 처리
}
};
SendEmptyMessage(100);
SendEmptyMessageDelayed(0,1000);
http://blackzaket.blog.me/80120859267
http://blackzaket.blog.me/80120853628
http://blackzaket.blog.me/80120852829 (obtain, obtainMessage, sendToTarget)
http://blackzaket.blog.me/80117016743 (Lock 메세지 핸들러)
<<<
3. Timer, TimerTask
http://samse.tistory.com/entry/타이머-사용-시-주의사항
http://blog.naver.com/yell301/130093191687 CountDownTimer (총시간, 주기)
http://www.gisdeveloper.co.kr/623?category=29
http://vicfaith.blog.me/150088193588 (TimerTask)
http://woosa7.tistory.com/entry/안드로이드-Chronometer-Timer
(Chronometer 구동시간부터 경과 시간 계산)
4. ASyncTask
http://blog.naver.com/free2824/60102468643
http://blackzaket.blog.me/80115482701
http://jyro.blogspot.com/2009/11/android-asynctask-template.html (Payload)
1. Looper 활용한 메세지 루프
http://blog.naver.com/dythmall/30097311938
http://blog.naver.com/dythmall/30097240993
2. 독립적인 Thread
http://blackzaket.blog.me/80120859267
1. 센서
http://blog.naver.com/mrlshjjang/70099432988
http://blog.naver.com/mrlshjjang/70098709754
http://blackzaket.blog.me/80109114621 (좌표 시스템)
http://blackzaket.blog.me/80110035365 (Shake 감지)
http://blackzaket.blog.me/80111214874 (센서 보정 지터링)
http://babyjaycee.blog.me/100109201309 (가속도 센서)
http://babyjaycee.blog.me/100106541128
http://babyjaycee.blog.me/100106540976
http://blog.naver.com/davincigo/60117458731 (센서 시뮬레이터)
* (예제 소스)
http://blackzaket.blog.me/80109627005
http://loadtodream.blog.me/30083549203
2. 포물선 방정식
http://blog.naver.com/mrlshjjang/70097805750
http://blog.naver.com/mrlshjjang/70097794779
http://blog.naver.com/mrlshjjang/70097788794
3. 센서 관리자 (가속센서, 나침반, Telephony, 블루투스)
* http://blog.naver.com/leonkese/100108576635
(SensorManager) getSystemService(SENSOR_SERVICE);
http://blog.naver.com/leonkese/100108575930 (가속센서 예제 소스)
4. Gesture
http://blog.naver.com/leonkese/100108587657 (GestureDetector)
http://blog.naver.com/leonkese/100108587121
http://blog.naver.com/leonkese/100108576016 (예제 소스)
http://blackzaket.blog.me/80106505158
1. 하이브리드 App 경우 자바스크립트 예제
http://blog.naver.com/zzbung/10098911342
2. PhoneGap
http://barnie.blog.me/114023308
1. 위젯, 아이콘 가이드
http://blackzaket.blog.me/80108066034
http://blackzaket.blog.me/80108061138
http://blog.naver.com/heehow/140118996717
2. 위젯 만들기 (런처가 없다.)
http://blog.naver.com/zzbung/10098447451
http://blog.naver.com/leonkese/100108582789
3. 위젯 가이드
http://blog.naver.com/mrlshjjang/70091172312
http://www.androes.com/85 (layout xml)
http://barnie.blog.me/106899347
4. 바탕화면에 위젯 만들어 보기
http://www.androes.com/104
5. Click Listener 달기
http://blog.naver.com/leonkese/100108576928
http://blackzaket.blog.me/80108766899
6. WidgetHost 테스트
http://blog.naver.com/lowmans/100108814674
7. 위젯 리스트와 이미지 가져오기
http://blog.naver.com/lowmans/100107323385
8. xml 속성 지정 하기
http://blackzaket.blog.me/80120160413
9. 위젯을 통한 브라우져 열기
http://blackzaket.blog.me/80117697108
10. 위젯 View 추가시 주의 사항
http://blackzaket.blog.me/80114726127
11. 위젯 매니져를 통해서본 캐시매니져
* http://vicfaith.blog.me/150093056488
* 기타
http://flytop.tistory.com/entry/appwidget (샘플소스)
1. 한글 판별
http://blog.naver.com/shcworld/130090881541
2. Usim 유무 확인
http://blog.naver.com/dythmall/30096448440
3. SD Card 유무
http://blog.naver.com/dythmall/30096190429
Environment.getExternalStorageDirectory().getAbsolutePath();

ex.
String SD_PATH = Environment.getExternalStorageDirectory().getAbsolutePath();
String SAVE_PATH = SD_PATH + "/tmp";
File tempDir = new File(SAVE_PATH);
boolean bMade = false;
if (!tempDir.exists()) {
bMade = tempDir.mkdir();
}
4. 핸드폰 정보
http://blog.naver.com/dythmall/30096180269
5. 디바이스D, 전화 번호 얻어 오기
http://blog.naver.com/dythmall/30095994369
6. 2.2 프로요에서 어플리케이션 종료 방법
http://www.androes.com/93
7. 어플 타이틀명 변경 하기
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);

final TextView leftText = (TextView) findViewById(R.id.left_text);
leftText.setText("Android Application");
int mypid = Process.myPid();
Process.killProcess(mypid);
8. 가로, 세로 모드 방향 설정 (onConfigurationChanged)
http://www.androes.com/42
http://blog.naver.com/macyoo/100106661982 (화면 회전시 데이터 저장 : OnRetainNonConfiguration)
http://blog.naver.com/monster7575/100106881280 (savedInstanceState)
9. xml 날짜 (pubDate) 변경 하기
http://www.androes.com/41
String str = "Wed, 02 Apr 2008 03:45:32 +0900";
String pattern = "yyyy.MM.dd"; // "dd MM yyyy HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
Date date = new Date(str);
String tmp = sdf.format(date);

10. 자바 특수 문자 변환 하기
http://www.androes.com/37
11. 상단 회색 타이틀 없애는 방법
http://www.androes.com/11
http://blog.naver.com/leonkese/100108582109
>>>
12.
>>>
13. 로그(Log) 유틸
http://fanpro.springnote.com/pages/5682827 Exception을 사용한 디버그 로그 찍기
http://blog.naver.com/dythmall/30096128525 로그 유틸 (SD에 파일 생성)
http://blog.naver.com/lowmans/100107663593 (Logcat 한글 메세지 확인)
14. MD5 암호화
http://blog.naver.com/free2824/60122212532
15. ADB
http://sje0114121.blog.me/150102350685
단말 및 Emulator를 관리하는 툴. 개발 환경에서 휴대 단말 상의 Application이나 Data를 Control할 수 있다.
1) adb devices
단말이나 Emulator의 시리얼 번호 확인
2) adb install [-r] <apk path>
Archive 형식인 apk(Android Package) 파일을 설치.
Eclipse로 개발하고 있는 경우 개발용 apk파일은 bin 폴더에 있다.
-r 옵션을 지정하면 그 Application이 작성한 data를 제거하지 않고 Application의 코드만을 설치한다.
예) adb -s emulator-5556 install helloWorld.apk
(-s는 시리얼넘버)
3) adb uninstall [-k] <apk name>
-k 옵션을 사용하면 작성한 data는 남기고 코드만을 삭제한다.
4) 파일 읽고 쓰기
(1) adb pull <Android path> <dev path>
(2) adb push <dev path> <Android path>
예) adb push foo.txt /sdcard/foo.txt
5) Linux Shell Command
/system/bin 에는 단말의 실행에 필요한 명령어 외에 개발 등에 사용하는 command가 포함되어 있다.
예)
adb shell logcat -d > log.txt
adb shell ls /system/bin
16. 날짜, 시간 활용<s></s>
http://vicfaith.blog.me/150088790591 (Date 사용법)
http://blog.naver.com/ljhzzang0218/10089625443 (날짜, 시간 전체 대 정리)
http://blog.naver.com/macyoo/100108732102 (두 날짜 차이)
import java.text.SimpleDateFormat;
import java.util.Date;

@Override
public String toString() {
SimpleDateFormat sdf = new SimpleDateFormat("HH.mm");
String dateString = sdf.format(date);
return dateString + ": " + magnitude + " " + details;
}

@Override
public String toString() {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");
String dateString = sdf.format(created);
return "(" + dateString + ") " + task;
}
17. 포멧 변환 유틸
http://blog.naver.com/macyoo/100108283101
18.
1. 이메일, 문자 보내기
http://blog.naver.com/shcworld/130099951685
http://blog.naver.com/lowmans/100117691716 (이메일에 파일 첨부)
http://blackzaket.blog.me/80111761804 (Gmail 이용해 Smtp 메일 보내기)
* (멀티 파일 첨부)
http://blog.naver.com/yell301/130098474454
* (SMS 보내기)
http://blog.naver.com/zzbung/10097959887
http://blackzaket.blog.me/80115307497
http://mainia.tistory.com/447 (레이아웃 동적 생성)
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + strSms));
* (SMS Application을 통해 보내기)
http://blog.naver.com/dythmall/30096174704
* (SMS 발송하기 (수신, 발신) : 소스)
http://www.androes.com/69
http://blog.naver.com/leonkese/100108575436
http://blackzaket.blog.me/80111769797
http://blackzaket.blog.me/80116489610 (전화 관련 API)
2. 받은 메세지함 DB 읽어서 보여주기
http://blog.naver.com/dukci/50089664998
3. 전화 걸기
http://blog.naver.com/dythmall/30096918910
4. 기타
http://flytop.tistory.com/entry/안드로이드-평번한예제2 (예제 소스, 이름,전화번호 가져오기)
http://flytop.tistory.com/entry/sms-2번째
private static final String LOG_TAG = "SmsR";
private static final String ACTION ="android.provider.Telephony.SMS_RECEIVED";

public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(ACTION)){
StringBuilder ab = new StringBuilder();
Bundle bundle = intent.getExtras();

if(bundle != null){
Object[] pdusObj = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdusObj.length];
for (int i = 0; i<pdusObj.length; i++) {
messages[i] = SmsMessage.createFromPdu ((byte[])pdusObj[i]);
ab.append("Received compressed SMS\n FROM ");
ab.append(messages[i].getDisplayOriginatingAddress());
ab.append("--Message--- ");
ab.append(messages[i].getDisplayMessageBody());
}
}

Log.i(LOG_TAG, "[SMSApp] onReceiveIntent: " + ab);
Toast.makeText(context, ab.toString(), Toast.LENGTH_LONG).show();

/* Start the Main-Activity */
Intent i = new Intent(context, SMSActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

}
1. 파일 입출력
http://blog.naver.com/shcworld/130100319543
2. 외부 파일 읽어 내부 파일로 저장 하기
http://blog.naver.com/zzbung/10097804666
http://blog.naver.com/zzbung/10097746664
1. Gps 상태 체크
http://blog.naver.com/shcworld/130099739686
http://blog.naver.com/shcworld/130097094734
- requestLocationUpdates (주어진 시간과 거리를 벗어날 경우 자동 Call > LocationListener)
http://blog.naver.com/shcworld/130097143275
2. GeoPoint 활용(날씨 정보 가져오기)
http://blog.naver.com/shcworld/130100817019
3. 맵, 지오코딩, 위치기반 서비스
http://blog.naver.com/shcworld/130099744143
http://blog.naver.com/shcworld/130098079503
http://blog.naver.com/dythmall/30098767618 (맵에 풍선 달기)
http://blog.naver.com/dythmall/30098333345 (줌 보여주기)
http://blog.naver.com/jeggange/90100058994 (맵 특정 좌표 찾아주기) mygeoposition.com
4. GPS 좌표를 이용한 거리 및 진행 방향 구하기
http://blog.naver.com/shcworld/130098171734
5. 위치값으로 주소 가져오기
http://blog.naver.com/shcworld/130098097682
Criteria provider로 주소 가져올 경우 번지 정보는 가져 오지만 구 정보는 가져 오지 못한다.
야후에서 제공 하는 Api를 이용하여 구 정보 가져 와야 함.
http://www.androes.com/80
1. Html5 + Android
http://lbiryu.blog.me/30100230454
1. 갤러리
http://www.androidpub.com/3957#viewSource
* (이미지 불러와 갤러리 구현) 소스
http://blackzaket.blog.me/80111762080
http://mainia.tistory.com/497
http://blackzaket.blog.me/80108252922 (리사이즈, 알파효과)
http://blackzaket.blog.me/80119859384 (선택되지 않은 사진 흐리게)
http://blackzaket.blog.me/80103040347 (Styleable)
http://blackzaket.blog.me/80102452509 (SD 카드에서 가져오기)
http://blog.naver.com/macyoo/100109499696 (썸네일 뷰어)
* http://blog.naver.com/neo__one/90072405416 (Java 소스에서 생성)
* sd 카드
http://blog.naver.com/leonkese/100108588224
http://blog.naver.com/macyoo/100109227516 (썸네일 보여주기)
* http://blog.naver.com/mar189/10080530983
* 2D, 3D 효과
http://blog.naver.com/lowmans/100115258620 (예제소스)
* Fling
http://blackzaket.blog.me/80118230830
* 썸네일 가져오기
http://blog.naver.com/free2824/60111174923
>>>
1. 메모리/밧데리 확인 하기
http://blog.naver.com/lowmans/100110421194
http://blog.naver.com/lowmans/100108358973
http://sje0114121.blog.me/150102616075
http://blog.naver.com/lowmans/100115515448 (Low Memory, Heap size)
http://jindroid.com/2010/10/11/max-heap-size-for-an-android-application/
http://blackzaket.blog.me/80121657308
http://samse.tistory.com/entry/Technical-Article-1-Avoiding-Memory-Leaks
* (내부, 외부 메모리 Check)
http://loadtodream.blog.me/30085716804
http://blog.naver.com/lcblue/100117219706
http://samse.tistory.com/entry/WeakReference-와-SoftReference-좀-쉽게-정리
http://samse.tistory.com/entry/Memory-leak-Weak-Reference
* 힙메모리
http://blog.naver.com/lcblue/100118928962 (기본 16M)
* 배터리
http://blackzaket.blog.me/80115147884 (BR, Battery, SDCarrd)
http://blog.naver.com/dualwield/100103928161
* 클립보드
http://utime.blog.me/150090514600 (1024kb까지만 저장, 예제 소스)
2. Java에서 Shell 명령어 사용하기
http://blog.naver.com/lowmans/100110302731
3. Packgename 가져 오기
http://blog.naver.com/lowmans/100107389824
4. 글꼴 파일 설치
http://blog.naver.com/mygirl2/40107406430
5. 게임 개발시 필요 항목
http://blackzaket.blog.me/80121327587
6. 한글 인코딩
http://blackzaket.blog.me/80120278481
http://utime.blog.me/150094969419 (한글 초성, 중성, 종성 분리), 나중에
7. CoverFlow 예제
http://blackzaket.blog.me/80123343863
8. URI 리스트
http://blackzaket.blog.me/80117776833
11. 외장 메모리 설치 가능한 App 개발시 고려 사항
http://blackzaket.blog.me/80114697309
12. Flash, Flex로 APP 개발
http://blackzaket.blog.me/80107777424
13. 시스템 정보
http://blog.naver.com/free2824/60106319669
http://blog.naver.com/tinenie/110101419089 (이통사 구분)
http://blog.naver.com/davincigo/60115687250 (단말 상태 정보)
<<<
14. 오류 발생시 이메일로 보내기
http://vicfaith.blog.me/150090021952
15. 멀티 패키지를 가질 경우
http://vicfaith.blog.me/150087623012
16. 패키지 Installer를 통한 apk 설치, 삭제
http://blog.naver.com/macyoo/100109039094
http://sdop.egloos.com/3621355 (설치된 패키지 확인)
http://samse.tistory.com/entry/Howto-recognizing-Add-Remove-package (패키지 추가,삭제 알아내기)
17. apk 업데이트, 업그레이드
http://blog.naver.com/yell301/130098262089
* 갤러리 커버 플로우
1. 디자인, 해상도, 다국어
http://www.androidpub.com/?mid=android_dev_info&page=4&document_srl=1046867
* (디자인팀 공유 필요)
http://blog.naver.com/leonkese/100108574497
http://monodream77.blog.me/130091205509 (디자인팀 공유 필요)
http://jinmo123.thoth.kr/?mid=blog&document_srl=58291 (색상표)
http://blog.naver.com/lowmans/100117960334 (UI 디자인)
* 다국어
http://blog.naver.com/leonkese/100108563422
http://samse.tistory.com/entry/다국어-작업시-format-string작업-방법
폰 Locale값에 따라 설정이 달라지니 유의해야 한다.
기본값 : values
한글: values-ko
영어: values-en
일본: values-jp
중국: values-cn
>>>
http://blog.naver.com/lowmans/100114503667 (화면 해상도 구하기)
* 디자인 협업
http://blog.naver.com/free2824/60119239637

2. 9 Patch 그리기
http://blog.naver.com/dythmall/30098885626
http://fanpro.springnote.com/pages/4793713
3. dip와 px
http://blog.naver.com/dythmall/30096162077
http://barnie.blog.me/104232280
http://www.androes.com/90 (small, normal, large screen)
http://blog.naver.com/monster7575?Redirect=Log&logNo=100113840411
pixel = dp*(density/160)
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int deviceWidth = displayMetrics.widthPixels;
int deviceHeight = displayMetrics.heightPixels;
pixel = dp * displayMetrics.density
http://blog.naver.com/lowmans/100120385297
http://blog.naver.com/dualwield/100105891183 (dip - px 계산식)
4. OnConfigurationChanged (가로, 세로)
http://blog.naver.com/leonkese/100108576703
http://fanpro.springnote.com/pages/4878597 (가로, 세로 구분 하는 방법)
http://blog.naver.com/lowmans/100120448647 (OrientationEventListener)
http://fanpro.springnote.com/pages/4792123 (화면 회전)
5. LCD 화면
http://blog.naver.com/leonkese/100108575828
http://javaexpert.tistory.com/104 (스크린 On, off Check)
http://blackzaket.blog.me/80110387834 (LCD on/off 제어)
http://blackzaket.blog.me/80121738464 (화면 밝기 셋팅)
* http://blog.daum.net/hopefullife/153
1. Http/Https
http://blog.naver.com/schweine7/40112694810 (정의)
http://blog.naver.com/monster7575/100108078346 (get, post, multipart)
http://blackzaket.blog.me/80115051938 (네트워크)
http://blackzaket.blog.me/80106866349 (웹서버에서 xml 가져오기)
http://cafe.naver.com/jzsdn.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=21091
http://blog.naver.com/kippee/130068924828 (connection timeout, Socket Timeout)
* (웹 이미지 다운로드)
http://blog.naver.com/lowmans/100118387950
http://blackzaket.blog.me/80119821425
http://utime.blog.me/150091131906
http://flytop.tistory.com/entry/이미지-로딩시-버벅거리는-현상-제거
http://blog.naver.com/lowmans/100116613420 (Url Download)
http://blog.naver.com/lowmans/100114637194
http://www.androidpub.com/479707 (다운로드 중단/재개)
http://blackzaket.blog.me/80119900442 (네트워크에서 이미지 수신 오류)
http://blog.naver.com/lcblue/100117326881 (네트워크 API + Parser)
http://blackzaket.blog.me/80111772481 (네트웍상태체크)
http://blog.naver.com/monster7575/100114155984 (네트웍 스피드 체크)
http://vicfaith.blog.me/150088529743 (xml 다루기 위한 헤더 설정)
>>>
* HttpClient
http://blackzaket.blog.me/80102786211
http://mainia.tistory.com/568 (예제)
http://mainia.tistory.com/567 (Connection Timeout 설정)
HttpClient client = new HttpClient();
client.getParams().setParameter("http.protocol.expect-continue", false);
client.getParams().setParameter("http.connection.timeout", sessionTimeOut);
client.getParams().setParameter("http.socket.timeout", sessionTimeOut);
HttpConnectionParams.setConnectionTimeout(params, CONNECT_TIMEOUT);
HttpConnectionParams.setSoTimeout(params, READ_TIMEOUT);
>>>
* SSL
http://blog.naver.com/dualwield/100097535390
http://blog.naver.com/dualwield/100097522003
* (이미지, 텍스트, RSS 다운로드)
http://artbrain.co.kr/12
3. wifi lock & wake lock
http://blog.naver.com/shcworld/130100816513
4. 실시간 네트워크 확인
http://www.androes.com/70
http://blog.naver.com/lowmans/100117024077 (Wifi, 3G)
5. http get, post
http://blog.naver.com/shcworld/130097482611
- Url 파싱
http://blog.naver.com/heehow/140119791914
6. Url 소스 Grab (with ProgressDialog use)
http://www.androes.com/117
7. urlencode 방법
http://www.androes.com/54
8. Socket
http://barnie.blog.me/104603388 (예제)
* 예제 소스
http://codemuri.tistory.com/632 (로또 당첨번호 )
http://blog.naver.com/monster7575/100108575881 (로그인)
http://mygirl2.blog.me/40123243755 (예제)
* 예제 소스
http://utime.blog.me/150090604710
1. 트위터
http://blog.naver.com/leonkese/100108721608
http://blog.naver.com/leonkese/100110552771
* 관련 사이트
http://blog.naver.com/yell301/130099688602
* (oauth 인증)
http://blackzaket.blog.me/80117372126
http://blog.naver.com/macyoo/100110022120
http://blog.naver.com/macyoo/100107249311 (야후, 구글)
2. 페이스북
3. 미투데이
http://blackzaket.blog.me/80119832126
4. Flickr
http://blackzaket.blog.me/80102785509

5. Open API
http://gtko.springnote.com/pages/4648573
http://blog.naver.com/dualwield/100096944414 (다음, 네이버)
http://blog.naver.com/davincigo/60118004003 (네이버)
http://dna.daum.net/apis/tistory (티스토리 api )
http://www.xmlrpc.com/metaWeblogApi (MetaWeblogApi 설명)
<iframe style="DISPLAY: none" id="sympathyFrm30101536396" height="0" src="" frameborder="0" width="100%" allowtransparency="allowTransparency" scrolling="no"></iframe>
1. 애니메이션 효과
http://blog.daum.net/hopefullife/98 (Alpha, Rotate, Scale, Translate)
http://javaexpert.tistory.com/137
http://javaexpert.tistory.com/98 (overridePendingTransition)
http://fanpro.springnote.com/pages/4789487 (소스, XML)
http://fanpro.springnote.com/pages/4789639 (Back key Animation)
http://fanpro.springnote.com/pages/4792147 (애니메이션 중 종료)
http://blackzaket.blog.me/80119898018 (Intro 3초뒤 애니메이션)
http://blackzaket.blog.me/80111679326 (Rotation3Animation) : 정상동작 하지 않음.
http://code.davidjanes.com/blog/2009/11/23/animated-slideshow-on-android/(Slide-Show)
* http://blog.daum.net/hopefullife/159 (3차원 애니메이션)
2. 리스트 뷰 애니메이션
* http://javaexpert.tistory.com/139
3. 2D 애니메이션
http://javaexpert.tistory.com/138
http://javaexpert.tistory.com/137
AnimationSet (여러 애니메이션을 하나처럼 보이도록 처리)
http://vicfaith.blog.me/150096753798
* http://blog.naver.com/macyoo/100111834537 (View 애니메이션)
* Frame (AnimationDrawable)
http://blog.naver.com/zzbung/10097802639
http://blog.naver.com/leonkese/100108583938
http://blackzaket.blog.me/80102540319 (setOneShot(false) - 반복)
AnimationDrawable frameAnimation;
ImageView imgView = (ImageView) findViewById(R.id.Image_xxx);
imgView.setBackgroundResource(R.anim.anim_xxx);
frameAnimation = (AnimationDrawable) imgView.getBackground();
anim_xxx.xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true">
<item android:drawable="@drawable/icon" android:duration="800"></item>
<item android:drawable="@drawable/app" android:duration="800"></item>
<item android:drawable="@drawable/icon" android:duration="800"></item>
</animation-list>
* Tween
http://blog.naver.com/kippee/130050254850
* 안드로이드 미디어 지원 포멧
http://blog.naver.com/macyoo/100111263430
* (정의)
http://loadtodream.blog.me/30083964710
>>>
1. MediaPlayer
http://blog.naver.com/leonkese/100108574547 (기본 Media API)
http://javaexpert.tistory.com/109
http://javaexpert.tistory.com/111
http://javaexpert.tistory.com/112
http://blog.naver.com/kippee?Redirect=Log&logNo=130051790872
http://blog.naver.com/leonkese/100108587887 (Raw resource media 재생) -> AssetFileDescriptor로 변환후 play
http://loadtodream.blog.me/30083965020
http://blackzaket.blog.me/80103457255
http://blog.naver.com/yell301/130098580038 (스트리밍 테스트)
http://blog.naver.com/lcblue/100112585951 (비디오)
http://blog.naver.com/lcblue/100112585808 (오디오)
http://mygirl2.blog.me/40108447254
2. MediaPlayer - mp3
http://javaexpert.tistory.com/108
* (뮤직듣기, 예제 소스)
http://blog.naver.com/macyoo/100105333258
http://loadtodream.blog.me/30083437408
http://blog.naver.com/zzbung/10097991322 (mp3 player service)
3. 비디오 재생, 레코드
http://blog.naver.com/dythmall/30096899429
http://blog.naver.com/leonkese/100108671160 (유튜브 파싱 및 WebView 플레이)
http://miksnug.pe.kr/28 (로컬에 파일 쓰지 않고 Play)
http://miksnug.pe.kr/25 (미디어 레코드)
http://blog.naver.com/macyoo/100106892067
* MediaRecorder
http://blackzaket.blog.me/80109637355
http://mygirl2.blog.me/40108447564
* 비디오 저장
http://blog.naver.com/free2824/60106157195
http://blog.naver.com/free2824/60105854773
<<<
4. SoundManager
http://javaexpert.tistory.com/91
http://blackzaket.blog.me/80108266703
* 볼륨 조정
http://samse.tistory.com/entry/볼륨키로-볼륨조정시-mixer결정-방식
>>>
5. SoundPool
http://javaexpert.tistory.com/82
http://javaexpert.tistory.com/90
http://blackzaket.blog.me/80116892731
http://blackzaket.blog.me/80103601636 (폰 상태 확인 후 재생)
http://loadtodream.blog.me/30086015191 (사운드 트랙 리스너)
7. 미디어 스캐너를 App에서 구동
http://blog.naver.com/shcworld/130089361372
http://blog.naver.com/free2824/60111191697 (카메라촬영 후 갤러리에서 보이지 않을 경우)
http://huewu.blog.me/110084637531 (미디어 컨텐츠 접근 하는 두가지방법)
http://blog.naver.com/free2824/60099216511
http://blog.naver.com/free2824/60099216720
* 곡정보, 앨범이미지 호출
http://dukci.blog.me/50089081184
2. AlertDialog
http://javaexpert.tistory.com/169
내부 리스트 내용을 커스텀 View로 추가 가능
http://blog.naver.com/zzbung/10097674846
http://www.androes.com/71 (Activitygroup 에서 호출된 subActivity는 this 대신 getParent())
3. 기타 컨트롤
http://javaexpert.tistory.com/133
4. Spinner
http://sana2.com/120044301
http://sana2.com/120044290
5. EditText
http://blog.naver.com/shcworld/130099344780
http://blog.naver.com/heehow/140118561476 (길이제한 InputFilter)
http://blog.naver.com/todie27/50101398950 (EditText 키이벤트)
http://www.androes.com/14 (특정타입 입력 받기)
android:inputType= number
양수 : number / 숫자 : numberSigned / 소수점 : numberDecimal
"|" 연산자를 통해 두가지 속성을 같이 적용할 수 있음. (number|numberDecimal)
http://blog.naver.com/dythmall/30097030865 (TextView ... ellipsize)
http://blog.naver.com/dythmall/30096054823 (엔터키 다른것으로 바꾸기)
- 안드로이드 EditText에서 아무입력없이 enter키를 눌렀을때 나는 에러
http://www.androes.com/31
if(editText.length() != 0)
i = Integer.parseInt(editText.getText().toString());
6. Menu
http://blog.naver.com/zzbung/10097744049
http://blog.naver.com/jeggange/90099756172 registerForContextMenu(View view)
http://blog.naver.com/jeggange/90099366489 서브 메뉴 Checkbox
옵션 메뉴 : 메뉴 키 버튼
컨텍스트 메뉴 : 일정시간 화면을 누르면 나타 난다.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.contextmenu, menu);
menu.setHeaderTitle("제목");
7. Button
http://blog.naver.com/todie27/50100449670 (투명하게 하기)
Drawable alpha = button.getBackground();
alpha.setAlpha(20)
http://www.androes.com/99 (이미지 버튼에 Selector 적용)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- selected -->
<item android:state_selected="true"
android:drawable="@drawable/btn_on" />
<!-- pressed -->
<item android:state_pressed="true"
android:drawable="@drawable/btn_on" />
<!-- focused -->
<item android:state_focused="true"
android:drawable="@drawable/btn_on" />
<!-- default -->
<item android:drawable="@drawable/btn_off" />
</selector>
<ImageButton android:text="Button On Off"
android:id="@+id/menu1"
android:background="#000000"
android:src="@drawable/menu_n1"
... ></ImageButton>
http://www.androes.com/12 (버튼크기 일정하게 유지 하기)
android:layout_weight="1"
http://www.androes.com/9 (버튼 스타일, ImageButton) > android:background, android:src
8. 리소스 사용 팁
http://blog.naver.com/dythmall/30097351037 (getIdentifier : id, drawable )
http://www.androes.com/96 (getIdentifier : drawable)
9. Toast
http://blog.naver.com/dythmall/30096795165 (커스텀)
10. RatingBar
http://blog.naver.com/dythmall/30096400552 (사이즈 조정해주기)
11. WebView
http://www.androes.com/119
<a> 태그가 있을때. shouldOverrideUrlLoading 사용
• http://, https:// : 웹 페이지를 이동한다.
• tel: : 전화 다이얼로 이동한다.
• geo: : 구글 맵으로 이동한다.
• mailto: : 이메일 클라이언트로 이동한다.
http://www.androes.com/60 (이미지(웹) 확대/축소 기능)
http://www.androes.com/4 (http, file, 문자열 데이터 )
12. 안드로이드 XML 속성 (EditText, TextView)
http://www.androes.com/33
* EditText
> 수평스크롤, 자동 개행

default : 오른쪽 변에 닿으면 자동 개행
scrollHorizontally = "T/F" : 오른쪽 변에 닿았을 때 수평 스크롤, Enter로 개행
singleLine = "T/F" : 수평 스크롤, 개행 X

> 입력 형식, 범위 제한
digits = "유효 char들" ex) digits = "aeiou"
numeric = "integer" : 아라비아 숫자만
= "signed" : 선두에만 - 부호 허용
= "decimal" : 소수점 허용
= "decimal|signed"
phoneNumber = "T/F" : -, (), 아라비아 숫자 허용
password = "T/F" : 마지막으로 입력한 문자만 잠시 보여줌

> 클릭시 전체 Focus 및 cursor 유무
selectAllon_focus = "T/F" : 선택되면 문자열 전체를 선택해준다.
cursorVisible = "T/F" : 커서를 보여주기.

> 대문자화
capitalize = "characters" : 글자 모두 대문자화
= "words" : 단어의 첫글자만 대문자화
= "sentences" : 문장의 첫 글자만 대문자화

> 내용 생략하기 및 marquee(자동 스크롤)

ellipsize = "none" : 뒷부분 자르기
= "start" : 첫부분 ...
= "middle" : 중간 ...
= "end" : 뒷부분 ...
= "marquee" : 좌우로 스크롤하여 보여줌, focus를 가졌을 때에만 스크롤됨.(focusable = "true")

marqueeRepeatLimit = "integer" : 기본 3, integer값만큼 왕복
= "marquee_forever" : 무한 반복

※ 단, 해당 속성 적용이 되려면 반드시 singleLine 속성 지정되어야 한다.

> hint 주기
hint = "string" : box에 글씨가 써 있고, focus를 가졌을 때 문자열이 사라짐
textColorHint = "color" : hint의 폰트 싸이즈
14. ProgressBar
http://blog.naver.com/leonkese/100108584068
15. Calendar, DateTime Picker
http://blog.naver.com/zzbung/10097277001
http://blog.naver.com/leonkese/100108576829
1. 디컴파일 (apk)
http://blog.naver.com/aiger?Redirect=Log&logNo=100112664625
http://blog.naver.com/lowmans/100119304649
http://blog.naver.com/yell301/130100317007
http://blog.naver.com/davincigo/60116823424
http://kozazz.tistory.com/entry/안드로이드-apk-decompile
http://samse.tistory.com/entry/자바-및-안드로이드-디컴파일-법
1. jad 사용법
D:\javasrc\ojdbc14>jad -r -d src -sjava oracle\**\*.class

2. dex decompile
classes.dex 폴더 위치에 gen폴더 생성
undx.jar과 AXMLPrinter2.jar파일을 classes.dex폴더 위치에 복사
java -DASDKLoc=c:\android-sdk\tools -jar undx.jar classes.dex
-> gen폴더에 classes.dex.dump와 classes.jar파일이 생성됨
classes.jar파일의 압축을 해재
jad로 class파일을 java파일로 decompile

3. AndroidManifest.xml
java -jar AXMLPrinter2.java sourcexml.xml > targetxml.txt

 

 

[http://hrhdev.tistory.com/106

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
33 [안드로이드 Android] 시스템 인텐트(Intent)를 이용한 전화걸기, 문자보내기, 이메일보내기 etc file 졸리운_곰 2016.03.05 1099
32 Intent를 사용한 첨부파일 이메일 보내기 file 졸리운_곰 2016.03.05 2117
31 android app gmail 보내기, 안드로이드 E-Mail 보내기 예제 따라하기 file 졸리운_곰 2016.03.05 267
30 android 실행시 class not found 졸리운_곰 2016.03.04 180
29 android 부팅과 함께 app 실행 시키기. 졸리운_곰 2016.03.02 168
28 [Android] 부팅시 서비스(Service) 재실행하기 (항상 실행) 졸리운_곰 2016.03.02 347
27 안드로이드 시스템 부팅시에도 프로그램 항상 실행 (재실행) 졸리운_곰 2016.03.02 705
26 App inventor 멀티스크린, 스크린 이동, 다중화면, file 졸리운_곰 2016.02.17 779
25 Communicating with Web APIs file 졸리운_곰 2016.02.17 1080
24 JSON data on the Android mobile with App Inventor 2 file 졸리운_곰 2016.02.17 364
23 REST clients for Java, MySQL and JSON Restful Web Services file 졸리운_곰 2016.01.11 223
» 안드로이드 개발 시 참고될 만한 자료 (android reading) 졸리운_곰 2015.11.11 4299
21 14 Great Android apps that are also open source file 졸리운_곰 2015.08.19 134
20 안드로이드 오픈소스 프로젝트 리스트 file 졸리운_곰 2015.08.19 432
19 ART(Android Runtime) file 졸리운_곰 2015.08.05 343
18 2014_CodeEngn_Conference_10_안드로이드에서도_한번_후킹을_해볼까_(Hooking_on_Android)_[정광운].pdf file 졸리운_곰 2015.06.16 248
17 안드로이드 커널 레벨 후킹하기 file 졸리운_곰 2015.06.16 1021
16 Android SDK 안드로이드 소스코드 난독화 file 졸리운_곰 2015.05.31 1254
15 안드로이드 프로그래밍 강좌 모음 졸리운_곰 2015.04.14 458
14 Nexus 기기 초기화 졸리운_곰 2015.04.10 295
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED