블로그 이미지
JoyfulLife

공지사항

최근에 받은 트랙백

글 보관함

calendar

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Admob 세팅

2011.08.17 21:19 | Posted by JoyfulLife
LinearLayout layout=(LinearLayout) findViewById(R.id.Admob);
        AdView adView = new AdView(this, AdSize.BANNER, Common.ADMOB_APP_ID);
        layout.addView(adView);
        AdRequest request = new AdRequest();
//        request.setTesting(true);
//        request.addTestDevice("78419238D07A8585AA915F0BB920F287");
        adView.loadAd(request);


주석을 넣으면 테스트를 할 수 있다.
신고

'안드로이드' 카테고리의 다른 글

Admob 세팅  (0) 2011.08.17
html 형식의 글을 string으로 변환  (0) 2011.08.02
cmd logcat  (0) 2011.01.16
Drag and drop in Android  (0) 2010.11.05
안드로이드에서 sd카드 마운트 확인 방법  (0) 2010.10.26
알림 메세지 , "지우기" 로 못 없애기  (0) 2010.09.24

html 형식의 글을 string으로 변환

2011.08.02 23:23 | Posted by JoyfulLife
<description><![CDATA[<p>New York legalizes same-sex marriage
</p>]]></description>
이런 형식의 글을 그냥 보여주면 쓸데없는 정보가 많아서 안된다.
html형식이니 이것을 string으로 변환해야 한다.

Spanned t=Html.fromHtml(String);
String strData=t.toString();

이렇게 해주면 알아서 변환을 해준다.
태그가 너무 복잡하면 에러나서 죽을수도 있다.

신고

'안드로이드' 카테고리의 다른 글

Admob 세팅  (0) 2011.08.17
html 형식의 글을 string으로 변환  (0) 2011.08.02
cmd logcat  (0) 2011.01.16
Drag and drop in Android  (0) 2010.11.05
안드로이드에서 sd카드 마운트 확인 방법  (0) 2010.10.26
알림 메세지 , "지우기" 로 못 없애기  (0) 2010.09.24
String sdcardState = android.os.Environment.getExternalStorageState();
        if (sdcardState.contentEquals(android.os.Environment.MEDIA_MOUNTED)) {

이렇게 하면 된다.

File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
        if (f.canRead()) {
            mCanAccessSDcard = true;

        } else {
            mCanAccessSDcard = false;
        }

이렇게 하는 것보다 훨씬 깔끔하다.
신고

알림 메세지 , "지우기" 로 못 없애기

2010.09.24 20:14 | Posted by JoyfulLife

     * 알림영역 선택시 어플 실행.

     * 알림영역 삭제는 어플 종료 이전에는 불가능 하도록 처리해야 .

     */

    private void notifyMessage() {

        String notiTitle = this.getString(R.string.app_name);

        String notiContent = this.getString(R.string.msg_notify_content);

        final NotificationManager notiMgr = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

        Notification noti = new Notification(R.drawable.ic_notify, notiTitle , System.currentTimeMillis());

        noti.flags |= Notification.FLAG_NO_CLEAR;

       

        PendingIntent i = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class),0);

       

        noti.setLatestEventInfo(this, notiTitle, notiContent, i);

       

        notiMgr.notify(NOTIFY_ID, noti);

    }


이부분이 핵심이다.

noti.flags |= Notification.FLAG_NO_CLEAR;


이렇게 하면 프로세스 죽지 않는한 알림메세지가 안 죽는다.



참조 사이트

http://developer.android.com/reference/android/app/Notification.html#FLAG_NO_CLEAR


http://overoid.tistory.com/25




신고
import android.widget.AbsListView;

@Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        if (mIsLoading) {
            return;
        }
        switch (scrollState) {
        case SCROLL_STATE_IDLE:
            if (view.getLastVisiblePosition() >= mTotalItemCount - 1 && mTotalItemCount > 0) {
                if (getListView().getFooterViewsCount() == 1 && !mIsLoading) {
                    mIsLoading = true;
                    //setProgressBarIndeterminateVisibility(true);
                    mListFooter.setVisibility(View.VISIBLE);
                    Thread thread = new Thread(mLoadListItems);
                    thread.start();
                }
            }
            break;
        case SCROLL_STATE_TOUCH_SCROLL:
            break;
        case SCROLL_STATE_FLING:
            break;
        }
    }

andtweet 에서 뽑아온 것이다. SCROLL_STATE_IDLE 상태에서 하고 싶은 일을 해주면 된다.

신고

'안드로이드' 카테고리의 다른 글

Enable or not, BroadcastReceiver  (0) 2010.09.12
쉽게 Dialog 만들기..  (0) 2010.07.28
스크롤이 맨 아래에 갔을 때 이벤트 주는 법  (0) 2010.07.28
코드로 안드로이드 방향 설정  (0) 2010.07.24
OnTouch, Action_up  (1) 2010.07.24
http 통신  (2) 2010.07.22

http 통신

2010.07.22 21:26 | Posted by JoyfulLife
2개의 방법이 있다.
첫번째는 java.net 패키지를 이용하는 것이다.

두번째는 org.apache 패키지를 이용하는 것이다.

2개가 비슷해서 처음에는 좀 헷갈린다.

그래서 차이점에 대해서 오늘 배운 것을 정리해보겠다.

1. java.net 사용법
URL url = new URL(addr);
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            if (conn != null) {
                conn.setConnectTimeout(10000);
                conn.setUseCaches(false);
                if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    BufferedReader br = new BufferedReader(
                            new InputStreamReader(conn.getInputStream()));
                    for (;;) {
                        String line = br.readLine();
                        if (line == null) break;
                        html.append(line + '\n');
                    }
                    br.close();
                }
                conn.disconnect();
            }

2.번째 org.apache 사용법
HttpGet httpget = new HttpGet(addr);
        DefaultHttpClient client = new DefaultHttpClient();
        StringBuilder html = new StringBuilder();
        try {
            HttpResponse response = client.execute(httpget);
            BufferedReader br = new BufferedReader(new
                    InputStreamReader(response.getEntity().getContent()));
            for (;;) {
                String line = br.readLine();
                if (line == null) break;
                html.append(line + '\n');
            }
            br.close();
        }


이 정도이다.

좀 다른 점은 thread를 사용할 때 apache 에서는 ResponseHanlder 를 등록할 수 있다는 것이다. html 소스를 모두 받고 나면 실행하는 핸들러이다.
public void run() {
            HttpGet get = new HttpGet(mAddr);
            DefaultHttpClient client = new DefaultHttpClient();
            try {
                client.execute(get,mResHandler);
            }
            catch (Exception e) {;}
        }

ResponseHandler<String> mResHandler = new ResponseHandler<String>() {
        public String handleResponse(HttpResponse response) {
            StringBuilder html = new StringBuilder();
            try {
                BufferedReader br = new BufferedReader(new
                        InputStreamReader(response.getEntity().getContent()));
                for (;;) {
                    String line = br.readLine();
                    if (line == null) break;
                    html.append(line + '\n');
                }
                br.close();

                Message message = mAfterDown.obtainMessage();
                Bundle bundle = new Bundle();
                bundle.putString("result", html.toString());
                message.setData(bundle);
                mAfterDown.sendMessage(message);
            } catch (Exception e) {;}
            return html.toString();
        }
    };

이 정도이다. client.execute(get,mResHandler);를 실행한후다 끝나면  handleResponse()를 실행한다.
 좀 이해하기 어려운 것은 response.getEntity().getContent() 부분이다.
도대체 getEntity()가 무엇인지 모르겠다.
신고

'안드로이드' 카테고리의 다른 글

코드로 안드로이드 방향 설정  (0) 2010.07.24
OnTouch, Action_up  (1) 2010.07.24
http 통신  (2) 2010.07.22
단말기 화면 을 실시간으로 보자  (0) 2010.07.20
Bitmap, Recycle()  (1) 2010.07.11
마켓 QR 코드 만들기  (1) 2010.07.08

나인 패치

2010.06.29 23:45 | Posted by JoyfulLife
나인 패치를 이용해서 어플을 만들고 있다.

이런 UI를 만들고 있다. bada 라고 쓰여진 부분은 TextView 화면이다. TextView 이미지가 사각형 모양이 아닌 약간 비스듬한 모양이다.
저런 배경화면을 쓰면 안에 글자를 어떻게 적어야 할까 생각해보게 된다.


내가 원하는 곳에 글자를 쓸 수 있을까?

그 해답을 나인패치에서 찾게 되었다.


 안드로이드 sdk에 tool 안에 draw9patch.bat 파일을 실행하면 된다.

이것을 사용하는 법은 간단하다. 실제적은 글자가 들어가는 부분을 정해주는 부분은 아래부분과 오른쪽 끝부분이다. 이곳에 왼쪽 마우스를 클릭하면 까만 점이 그려진다.



이런식으로 까만 점을 색칠하면 오른쪽 화면에 contents 가 들어갈 수 있는 부분이 표시가 된다. 이 안에 글자가 들어가는 것이다.


아직 끝난 것이 아니다.

위부분과 왼쪽 부분도 까만 점을 정해주어야 한다. 위부분은 가로방향으로 늘어날 경우 늘어날 부분을 정해주는 것이고, 왼쪽 부분은 세로 방향으로 늘어날 경우 늘어날 부분을 정해주는 것이다.


신고

'안드로이드' 카테고리의 다른 글

Tab을 사용면서 Title 변경하기..  (0) 2010.07.06
ScrollView + listView  (1) 2010.07.03
나인 패치  (0) 2010.06.29
안드로이드 어플리케이션 종료  (0) 2010.06.01
UX 교육 1/3  (0) 2010.05.15
구글 개발자 등록 완료  (0) 2010.05.10

안드로이드 어플리케이션 종료

2010.06.01 19:21 | Posted by JoyfulLife
어플을 만들면서 Activity가 스택에 쌓이는 것을 한방에 종료할 방법을 찾다가 알게 되었다.

http://blog.naver.com/PostView.nhn?blogId=huewu&logNo=110082677696&parentCategoryNo=18&viewDate=&currentPage=1&listtype=0

원작자님의 주소이다.


요약하면..

1.메니페스트 파일에 RESTART_PACKAGES 권한을 사용한다고 선언한다.
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>

2.ActivityManager 의 restartPackage API 를 호출한다.
ActivityManager am 
             = (ActivityManager)getSystemService(ACTIVITY_SERVICE);

신고

'안드로이드' 카테고리의 다른 글

ScrollView + listView  (1) 2010.07.03
나인 패치  (0) 2010.06.29
안드로이드 어플리케이션 종료  (0) 2010.06.01
UX 교육 1/3  (0) 2010.05.15
구글 개발자 등록 완료  (0) 2010.05.10
Camera 오픈 소스 분석..  (0) 2010.04.30

Jni 공부중..

2010.02.09 12:25 | Posted by JoyfulLife
마이크로소프트웨어 잡지 에서 나온 JNI 기사를 공부하고 있다.
실습 첫번째부터 막혀서 암담했는데

검색을 해보니 좀 나온다.


javac 와 javah를 이용해서 컴파일을 하는 법이다.

책에는 간단하게 되어있는데

javac로 컴파일 할 때 위치가 중요한 것 같다.

책에서는 javac kr/co/imaso/woogi/SaxParser.java 로 했다.

그러면 윈도우에서는 컴파일이 안된다.


http://dev.heartsavior.net/122

이 사이트를 참고하면 대충 알 것이다.

javac -d 옵션으로 디렉토리 옵션을 줘서 하면 되는 것 같다.

SaxParser.java 가 있는 곳으로 가서 javac -d . SaxParser.java 로 컴파일하고

javah kr.co.imaso.woogi.SaxParser 로 하면 컴파일이 잘 될 것이다.

그리고 책에 오류가 있는데 ArrayList 를 사용하려면 import java.util.ArrayList 를 추가해줘야 한다.


신고

'안드로이드' 카테고리의 다른 글

바이블뷰어 만드는 중..  (0) 2010.02.22
android sdcard 에 파일 생성.  (0) 2010.02.14
Jni 공부중..  (0) 2010.02.09
I'm studying twitter4j  (0) 2010.01.18
I can upgrade my Dreamphone to 1.5 finally..  (0) 2010.01.09
I can send my voice to another phone  (0) 2009.12.30

삽질중.. 안드로이드 tcp 통신..

2009.11.24 21:20 | Posted by JoyfulLife
컴터 2대로 tcp 를 이용해서 데이터를 보내고 있다. 한쪽은 서버 , 한쪽은 클라이언트

http://humaneer.net/71

이 사이트를 참고해서 어느 정도는 구현이 끝났다.

문제는 내가 보내는 데이터는 byte 형식이다. 서버에서 byte 형식으로 데이터를 받아서 처리해줘야 한다. 자바 입출력 부분이 좀 까다로워서 잘 안된다. printwrite는 문자열 형식이라서 byte 형식으로 read를 해주는 api를 찾아봐야겠다.

printwriter 와 buffer를 이용하니 데이터를 한 번에 쭉 다 받아버리고 마지막에 출력을 해준다.
내가 원하는 것은 480byte를 받아서 계속 처리해주는 것인데..

사실 음성을 보내는 것이다. udp가 아닌 tcp로 보내는 것은 tcp가 조금더 익숙하기 때문이다. 옆자리에서 하기 때문에 데이터 깨질 일도 별로 없을 것이다. 우선 tcp로 음성을 보내고 서버에서 음성을 출력해주는 게 완성이 되면 udp로 바꿀 예정이다. 아무튼 2-3일만 해보면 될 것 같다. .

신고

'안드로이드' 카테고리의 다른 글

RC29로 다운 그레이드가 안됩니다.  (0) 2009.12.02
단말  (0) 2009.11.29
삽질중.. 안드로이드 tcp 통신..  (0) 2009.11.24
안드로이드 에뮬레이터 서버 운영 방법..  (1) 2009.11.21
openFileInput, sdcard  (2) 2009.11.20
음성 녹음 모듈 개발..  (2) 2009.11.19
이전 1 2 다음

티스토리 툴바