홈으로 홈으로 | 무료회원가입 | 아이디/비번찾기 | 즐겨찾기
메인홈1대1상담음악방송청취

음악가사 검색
이아인사랑
트로트발전연구소
음악방송 안드로이드앱 제작
온라이브스토어(앱다운로드)
온라이브(방송등록및청취)
Search Video Best 50
금영노래방
TJ노래방
유튜브 동영상 다운로드
POP Player
신나는 고스톱
컴퓨터 오목
작은 음악다방
운.영.자.1대1.상담
FAQ\지원.프로그램
Q&A\고.객.지.원

자동러시 웹플레이어신청

보안∵서버∵쿠키
윈도우∵프레임
이미지∵배경
시간∵달력∵계산
상태바∵타이틀바
음악∵영상
폼∵전송∵테이블
키보드∵마우스
효과∵링크∵메뉴
Script∵php
기타
PHP 강좌
윈도우관련팁
웹관련팁
홈페이지제작팁
기본강좌
레지스트리
윈도우서버
리눅스서버
Android
Android 개발 정리
6년 전
key 파일의 내용보기 : keytool -list -v -keystore app_v10.key
*  WebView Download
  http://sdop.egloos.com/3630690

  setDownloadListener



* ListView 선택 후 스크롤 시 전체 리스트 검정 화면으로 바뀌면서 스크롤 되는 현상
http://android-developers.blogspot.com/2009/01/why-is-my-list-black-android.html
요약하면 android:cacheColorHint를 지정하시면 됩니다.

* usim, 전화번호(MDN) 구하기:  android.telephony 패키지 참고
http://d.android.com/reference/android/telephony/TelephonyManager.html#getLine1Number()
참고하시기 바랍니다. READ_PHONE_STATE 퍼미션이 필요합니다



* TelephoneyManager 에 대한 자세한 설명 : http://icess.egloos.com/3279459



### 화면 크기
mWinMgr = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
int displayWidth = mWinMgr.getDefaultDisplay().getWidth();

#### wifi, 3G 에 대한 Network change
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />



##################################################
# android.graphics.Camera

##################################################



3d flip 효과
  http://blog.paran.com/fanfare%40hitel/34356715


Transformation Matrix 설명
  http://www.senocular.com/flash/tutorials/transformmatrix/


Camera.save() : 스택에 maxtrix 를 넣는다.
Camera.restore() : 현재 transformation 을 없애고,
  마지막 저장된 상태(스택에서 꺼냄)로 돌아가 계속 진행한다.

순서
  1. canvas.save();
  2. transform matrix;
  3. draw;
  4. canvas.restore();


Canvas.save, Canvas.restore; Camera.save, Camera.restore
  http://maohao.wordpress.com/category/graphics/


## Etc
Android Coverflow Widget V2
  http://www.inter-fuser.com/2010/02/android-coverflow-widget-v2.html









##################################################
# SMS

##################################################



#### 수신되는 SMS 를 따로 처리하는 broadcast receiver
  <intent-filter>
      <action android:name="android.provider.Telephony.SMS_RECEIVED" />
     </intent-filter>


BroadcastReceiver 클래스를 사용하면



#### 참고
SMS에 반응하는 프로그램(안드로이드)
  http://flytop.tistory.com/62


SMS Messaging in Android (외국)
  http://mobiforge.com/developing/story/sms-messaging-android


Inbox 내 SMS 문자 삭제하기
  aphone 에서 검색



##################################################
# ViewFlipper

##################################################

: In/Out 속성을 지정하여 View 의 이동을 animation 처리한다.


1. 레이아웃 구성
  ViewFlipper 에 포함될 View 를 정의

2. 애니메니션 구성
  res/anim 에 원하는 애니메이션 구성

3. 코드 구성
mFilpper = (ViewFlipper)this.findVeiwById(R.id.flipper)
mFilpper.startFlipping();
mFilpper.setInAnimation(...);
mFilpper.setOutAnimation(...);


* 선언한 뷰를 class로 매핑
    flipper = (ViewFlipper)findViewById(R.id.flipper);
    title = (Title)flipper.getChildAt(0);
    menu = (Menu)flipper.getChildAt(1);
    game = (Game)flipper.getChildAt(2);

* 원하는 뷰를 화면에 나타내기
    flipper.setDisplayedChild(2);

* 참고사항

setContentView혹은 layoutinflate를 하는 시점에 모든 뷰가 생성이 되고 화면에 보이는 여부와 상관없이

종료할때까지는 계속 살아 있기 때문에 특정 view를 보일때 초기화를 한다든지 하는건 알아서 해줘야함

(별도의 overriding할 method같은건 당연히 제공되지 않음)



## 이벤트 처리
http://tigerwoods.tistory.com/23

OnTouchListener 인터페이스의 구현

화면에 일어나는 touch를 감지하기 위해서는 android.view.View.OnTouchListener interface를 구현하여야 한다.

OnTouchListener 인터페이스는 다음과 같은 abstract callback method를 포함 함으로 구현해 주어야 한다.


Animation 리소스의 사용
  push_left_in.xml: 새로운 view가 왼쪽 방향으로 밀려 들어옴.
  push_left_out.xml: 기존 view가 왼쪽 방향으로 밀려 나감.
  push_right_in.xml: 새로운 view가 오른쪽 방향으로 밀려 들어옴.
  push_right_out.xml: 기존 view가 오른쪽 방향으로 밀려 나감.


<translate>
상하좌우 이동 animation을 지정하며. TranslateAnimation 클래스에 대응한다.

<alpha>
투명함을 조정하며, AlphaAnimation 클래스에 대응한다.


Java code에서 ViewFlipper 객체의 사용
  View:addView(View): layout xml 문서 내부의 ViewFlipper element에 nest된 view 이외에 새로운 view를 동적으로 추가한다.
  ViewAnimator:setInAnimation(Context, int): 새로운 view가 화면에 진입시의 animation 설정
  ViewAnimator:setOutAnimation(Context, int): 기존 view가 화면에서 퇴장시의 animation 설정
  ViewAnimator:showNext(): ViewFlipper에 등록된 view중 현재 view의 다음 view를 화면에 보이게 함
  ViewAnimator:showPrevious(): ViewFlipper에 등록된 view중 현재 view의 전 view를 화면에 보이게 함
  ViewFlipper:setFlipInterval(int): 자동 flipping시 적용할 시간간격 (1/1000초 단위 사용)
  ViewFlipper:startFlipping(): 설정된 시간간격을 적용해 자동 flipping 시작 함
  ViewFlipper:stopFlipping(): 자동 flipping을 정지 함


ViewSwitcher : ViewFlipper와 동일

##################################################
# Thread
##################################################
안드로이드 021: Thread 구현하기 2/2 (with AsyncTask & ProgressBar)
  http://tigerwoods.tistory.com/28
  
Thread - Handler and Looper
  http://skyswim42.egloos.com/3546223


[번역완료]Talking about Android Message Queue
  http://blog.naver.com/osk1004?Redirect=Log&logNo=50068938534


안드로이드 Key/Touch event dispatch 과정
  http://cafe.naver.com/05cmusa2.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=385




==> 추가 내용
android UI thread, painless threading
  http://sdop.egloos.com/3600978
  UI 관련 행위는 UI Thread(Main Thread)에서 수행해야한다

Android - UI Thread와 Handler
  http://www.cyworld.com/thespeedofpain/2653453
  'view 구조를 생성한 쓰레드에서만 그 view를 건드릴 수 있다
  'android.os.Handler' class를 활용한다
    - job queue 로 서로 주고 받음


Android App - Using threads and ProgressDialog 참고





* Networking with Android
http://blog.naver.com/davincigo?Redirect=Log&logNo=60103780004

    public class Requester extends Thread {
        Socket requestSocket;
        String message;
        StringBuilder returnStringBuffer = new StringBuilder();
        Message lmsg;
        int ch;
        @Override
        public void run() {
            try {
                this.requestSocket = new Socket("remote.servername.com", 13);
                InputStreamReader isr = new InputStreamReader(this.requestSocket.
getInputStream(), "ISO-8859-1");
                while ((this.ch = isr.read()) != -1) {
                    this.returnStringBuffer.append((char) this.ch);
                }
                this.message = this.returnStringBuffer.toString();
                this.lmsg = new Message();
                this.lmsg.obj = this.message;
                this.lmsg.what = 0;
                h.sendMessage(this.lmsg);
                this.requestSocket.close();
            } catch (Exception ee) {
                Log.d("sample application", "failed to read data" + ee.getMessage());
            }
        }
    }

##################################################

Android - Updating UI On UI Thread
  http://escomic.net/211

Android에서도 UI관련 행위는 UI Thread위에서 해야한다
그렇지 않으면 아래와 같은 Exception이 발생한다

   android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created .....


Swing의 SwingUtilities.invokeLater(Runnable r)와 같은 역할을 하는 아래의 방법을 사용하여 해결할수 있다


  Activity.runOnUiThread(Runnable action)
  
  View.post(Runnable action)
  
  View.postDelayed(Runnable action, long delayMillis)
  
  Handler.post(Runnable action)



##################################################
Android에서의 TCP/IP 통신
  http://blog.naver.com/davincigo?Redirect=Log&logNo=60103774153















Grab a URL Source with ProgressDialog and AsyncTask
  http://www.androidsnippets.org/snippets/116/


Handler를 써야 합니다.
  http://www.androidpub.com/?_filter=search&mid=android_dev_info&search_target=title&search_keyword=Handler&document_srl=57470


미디어 갤러리
  http://developer.android.com/reference/android/content/Intent.html#ACTION_SEND
  http://modian.tistory.com/entry/Gallery-Camera-사용



Intent.ACTION_MEDIA_SCANNER_SCAN_FILE : Broadcast Action: Request the media scanner to scan a file and add it to the media database.





##################################################
# SurfaceView
##################################################
[ 안드로이드 개발 2.0 ] 그래픽 2D 1 - 안드로이드 아이콘 띄우기, 커스텀뷰 활용
  http://moozi.tistory.com/80
[ 안드로이드 개발 2.0 ] 그래픽 2D 2 - SurfaceView 활용 1
  http://moozi.tistory.com/81
[ 안드로이드 개발 2.0 ] 그래픽 2D 3 - SurfaceView 활용 2
  http://moozi.tistory.com/82

  * 스크린 사이즈 변경시 Call Back 함수를 호출함


View 에서 그리기
  1) View 상속 클래스 생성
  2) onDraw() 오버라이딩
  3) invalidate() 호출

SurfaceView 에서 그리기
  1) SurfaceHolder.lockCanvas() 와 SurfaceHolder.unlockCnavasAndPost() 를
     이용하여 화면을 갱신함





##################################################

# Android 사용자 커스텀뷰

##################################################

android에서 이미지뷰 Drag 해보기
  http://blog.naver.com/eriteia?Redirect=Log&logNo=10077769956

Create Custom Widget : http://developer.android.com/guide/topics/ui/custom-components.html (원문)


기본적인 접근

  1. View또는 기존 생성한 클래스를 상속(Extends) 받는다.
  2. 상위 클래스(Super Class)의 메소드(onXXX …) 를 오버라이드 한다. Ex) onDraw(), onKeyDown(), onMeasure()…
  3. 이제 클래스를 새롭게 확장한 이후 이 클래스를 바탕으로 좀더 확장해 나간다.

참조

  onDraw ()   : 2D 그래픽을 그리기 위한 메소드
  onMeasure() : Widget의 크기(영역 : 폭, 높이)을 지정하는 메소드

기존 존재하는 클래스 확장 예시

1. 정의
  public static class MyEditText extends EditText

2. 클래스 초기화
  Super를 사용하여 상위 클래스를 초기화 한다 이후 xml 을 통해 레이아웃을 초기화 할 수 있다.

3. 메소드 오버라이드
  onDraw(), onMeasure() 등을 오버라이딩 하여 원하는 형태로 꾸며준다.

4. 커스텀 컴포넌트 사용
      <view
        class="com.android.notepad.NoteEditor$MyEditText"
        id="@+id/note"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@android:drawable/empty"
        android:padding="10dip"
        android:scrollbars="vertical"
        android:fadingEdge="vertical" />










* IMSI, 핸드폰 번호 알아오기

TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String imsi = mTelephonyMgr.getSubscriberId();
String imei = mTelephonyMgr.getDeviceId();
String phoneNumber = mTelephonyMgr.getLine1Number();




[안드로이드] Toast View 만들기
  http://blog.daum.net/hopefullife/79






##################################################
# 전체화면 사용하기 (Status bar, Title bar 숨기기)
##################################################
  - 타이틀바 및 상태바 숨기기

  * Fullscreen 의 경우 Annon 영역이 없어짐 (32pixel)



참고 : http://www.androidpub.com/4710

* AndroidManifest.xml 에서 처리
  <activity android:name=".MyActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  >


* java 에서 처리
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  
  // setContentView 전에 호출
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
     WindowManager.LayoutParams.FLAG_FULLSCREEN);



  setContentView(...);



##################################################
# 기타

##################################################



* View 컨테이너로 쓰이는 ViewGroup 들

  ViewGroup 은 Layout 과 비슷하지만

  자기 자신도 어느 정도의 기능을 제공한다.

  - Gallery, GridView, ImageSwitcher, ScrollView, TabHost, ListView 등 ..









##################################################
# 바코드 처리

##################################################

안드로이드 바코드 인식기(OCR) 오픈소스 zxing 분석(by wono77)
  http://blog.naver.com/wono77?Redirect=Log&logNo=140101427842





  import com.google.zxing.*;
  import com.google.zxing.common.ByteMatrix;
  import com.google.zxing.qrcode.QRCodeWriter;
  
  QRCodeWriter writer = new QRCodeWriter();
  try {
  
   Hashtable hints = new Hashtable();  
    hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
   ByteMatrix matrix = writer.encode("한글입력", BarcodeFormat.QR_CODE, 230, 230, hints);
   MatrixToImageWriter.writeToFile(matrix , "png", new File("d:/test1.png"));
  
  } catch (WriterException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }


  
안드로이드 바코드 인식기(OCR) 오픈소스 zxing 분석(by wono77)
  http://blog.naver.com/wono77?Redirect=Log&logNo=140101427842




1. ByteMatrix 를 구한다.
2. int[] pixels = new int[width * height]; 를 만든다.
3. android.graphics.Bitmap 으로 저장한다.


        ByteMatrix result = new MultiFormatWriter().encode(contents, format,
            pixelResolution, pixelResolution);
        int width = result.getWidth();
        int height = result.getHeight();
        byte[][] array = result.getArray();
        int[] pixels = new int[width * height];
        for (int y = 0; y < height; y++) {
          for (int x = 0; x < width; x++) {
            int grey = array[y][x] & 0xff;
            // pixels[y * width + x] = (0xff << 24) | (grey << 16) | (grey << 8) | grey;
            pixels[y * width + x] = 0xff000000 | (0x00010101 * grey);
          }
        }

        Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
        





##################################################
# 개발 규칙

##################################################



* member 변수에 prefix  로 m 을 붙이는건 어떨지?

* SQLite

  - 기본키는 필드 이름에 _(언더라인)을 붙인다.

  ex) notes 테이블 : _id, title, body 의 3개 필드로 구성됨



* 이미지는 영문 소문자, 숫자, 언더라인(_) 만 가능함

* 투명 이미지는 png 나 gif 로 저장할 것




##################################################
# View  크기(Dimension) 지정 단위

##################################################

px (pixels) : 실제 화면 픽셀

sp (scaled pixels - best for test size) : 가변 글꼴 표시에 최적임

pt (points) : 글자 크기 단위

dip (device independent pixels) : 160dpi 화면을 기준으로 한 픽셀 단위

  - 버튼, 메뉴등 width 지정

in (inches) : 물리적 길이

mm (millimeters) : 물리적 길이



em : TextView 에서 텍스트의 표시량을 글꼴에 무관하게 제어할때 유용


##################################################
# 삼성안드로이드폰 - M100S 리뷰
##################################################

삼성안드로이드폰 리뷰#1 : 삼성안드로이드폰 가격,디자인 및 아이폰과 터치감 비교
  - http://blog.naver.com/clie701/110081285012

삼성안드로이드폰 리뷰#2 : 인터넷 속도 및 안드로이드 안드로이드 어플리케이션의...
  - http://blog.naver.com/clie701/110081381001



##################################################
# 도서 리뷰
##################################################

안드로이드 개발, 어떻게 시작하는게 좋을까?
  - http://nopdin.tistory.com/699



형화 추전 서적

1. 초급

  시작하세요 안드로이드 프로그래밍

2. 초+중급

  알짜만 골라 배우는 안드로이드 프로그래밍

  프로페셔널 안드로이드 프로그래밍(일명 빨간책)
추천추천 : 1213 추천 목록
번호 제목
3,012
 텍스트 줄바꿈, 글자자르기 CSS
3,011
 jQuery Mobile에서 유용한 코드 10가지.
3,010
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,009
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,008
 [jQuery] jQuery Quick API
3,007
 [ transition ] 링크 hover 색상 변화 속도 조절
3,006
 PHP 5.3.0 에서 사라진 함수들 대체
3,005
 어떤 파일들이 include 나 require 되었는지 확인하는 함수(get_included_files)
3,004
 PHP 날짜 형식 및 계산하기(날짜 더하고 빼기)
3,003
 jQuery Mobile에서 유용한 코드 10가지.
3,002
 값이 배열 안에 존재하는지 확인하는 in_array함수
3,001
 사용자가 웹브라우저에서 뒤로가기를 했을때 감지하는 방법
3,000
 [jQuery]버튼 활성화, 비활성화
2,999
 jQuery show() / hide() / toggle() 사용법
2,998
 jquery 여러가지 이벤트
2,997
 border-radius 속성
2,996
 네이버 오픈API 음성합성 API 사용하는 PHP 샘플코드
2,995
 UTF8 한글 자르기..
2,994
 iconv 에러 발생시 계속 처리하기 옵션
2,993
 [PHP] 현재 페이지의 도메인 , URL 정보 알아내기.
2,992
 [PHP] 막강 기능 배열..
2,991
 [CSS] - Input clear `X ` 버튼 제거 ( IE, Chrome, Firefox )
2,990
 [Mobile] - 모바일웹 Href 태그속성들
2,989
 [JqueryMobile] - 현재화면의 가로세로 사이즈 구하기
2,988
 [JqueryMobile] - 화면의 가로, 세로 사이즈 구하는 방법
2,987
 jquery로 가로 넓이(width), 세로 높이(height) 자동 조절
2,986
 iframe 높이 jquery로 자동조절하기
2,985
 jQuery 오른쪽 영역의 높이를 왼쪽 영역의 높이와 동일하게 하기
2,984
 jquery에서 테이블 짝수, 홀수 번째 TR 배경색 변경하기
2,983
 jquery에서 테이블에 마우스 오버시 해당 행의 배경색상 변경하기
2,982
 jquery 스크립트내 특정값 확인하기 (디버깅)
2,981
 jquery cookie (jquery.cookie.js)
2,980
 jquery div 기본 넓이, 높이 계산 및 padding, border 포함 하기
2,979
 jquery 다른버전 추가 사용시 충돌 방지 (카페24 스마트디자인 기본내장 jquery 1.4.4 버전과 충돌시 해결방법)
2,978
 특정 페이지 종료시 확인 경고창 출력
목록
추천음악방송
인기트로트메들리모음
추천 트로트
감성 트로트
밤무대 애창곡
전자올겐 경음악
작은 음악다방
종합성인가요방
카바레 음악
트롯디스코팡팡
관광 메들리
트롯카페
가요감상실
추억의옛노래
스페셜가요광장
BillBoard Free
Dance&Remix
Pandora TV
추천가요모음
경음악.전자올겐
스페셜음악여행
WOLRD POPs
K-POP\BillBoard
JP\CN
POP TOP BEST
K.R.노래방

추천가요\인기
F뮤직 인기\발라드
F뮤직 애창\트로트
트로트성인가요
인기가요
프리미엄 POP
경음악\기타
프리미엄 최신가요
프리미엄 성인가요
가요1번지(종합)
뮤직하우스
동요\연변\반주\기타
앗싸! 뽕짝
가요 포장마차
가요축제\트롯1번지
댄스\메들리\리믹스
카페\명상\경음악\기타
추천가요\POP\기타
최신가요\인기가요
뮤직트로트 부산광역시부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.