블로그 이미지
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  
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

코드로 안드로이드 방향 설정

2010.07.24 21:03 | Posted by JoyfulLife
2시간의 구글링 끝에 알아냈다.

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

이렇게 해주면 된다.

setO .. 이런 식으로 찾다가 안되서 다른 방법으로 찾다가 허무하게 알아냈다.
원본주소->http://devlog.thoth.kr/?mid=blog&document_srl=4234704

내가 헤맨 방법은..
 
android:configChanges="orientation"

로 설정하는 방법이다.

이것은 방향이 바뀔때를 캐치한다.


@Override
    public void onConfigurationChanged(Configuration _newConfig) {

       
            _newConfig.orientation=Configuration.ORIENTATION_LANDSCAPE;
           
            super.onConfigurationChanged(_newConfig);

    }

이 소스 안에서 변경되었을 때 처리할 수 있다.

나는 저 안에서 변경이 될 때 방향 설정을 다시 해주면 될 것 같았다. 하지만 잘못된 것이었다.

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

이 방법이 올바른 방법이었다.

이 소스를 사용하면 방향 설정이 고정이 된다.
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTAIT);
로 하면 세로로 고정이 된다.

이북을 만들 때 좋을 것 같다. 성경뷰어 만들 때 추가 기능으로 업데이트를 할 것이다.


신고

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

쉽게 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
단말기 화면 을 실시간으로 보자  (0) 2010.07.20
TAG 방향, 설정

OnTouch, Action_up

2010.07.24 15:19 | Posted by JoyfulLife
Action_down  은 잘 먹는데 Action_up 이 안 먹을 때 있다.
그 이유는....


return 때문에 그런다.

return false;  로 하면 action_up 이 안된다. 하지만 down은 잘된다.

return true; 로 하면 up도 잘 될 것이다.

그 이유를 생각해보자면 return false 를 하면 더 이상 touch 이벤트를 찾지를 않는다. 그래서 이벤트가 down까지만 찾고 리턴을 하고 만다. 하지만 return true; 를 하면 이벤트를 up까지도 찾는다.

return 이 ture, false 이냐를 잘 판단하는게 좋을 것 이다.

public boolean onTouchEvent(MotionEvent event)
    {
        int action = event.getAction();
        Log.i("TEST","action="+action);
        if(action == MotionEvent.ACTION_DOWN)
        {
            mBgColor=Color.parseColor(getResources().getString(R.color.black));
            invalidate();
            Log.i("TEST","down childview");
           
        }
        else if(action == MotionEvent.ACTION_UP)
        {
            mBgColor=Color.parseColor(getResources().getString(R.color.white));
            invalidate();
            Log.i("TEST","up childview");
        }
        return true;
    }
신고

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

스크롤이 맨 아래에 갔을 때 이벤트 주는 법  (0) 2010.07.28
코드로 안드로이드 방향 설정  (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

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

Synergy 컴퓨터 화면 공유

2010.07.21 20:40 | Posted by JoyfulLife
http://shblitz.net/1061

네트워크를 이용해서 하나의 키보드와 마우스로 2개의 컴퓨터를 조정하는 프로그램이다.

설정 방법은 저 홈페이지를 참고하면 될 것 같다.

한가지 주의 할 점은 화면 이름을 숫자가 아니라 계정이름을 줘야 하는 것이다. 확실하지는 않다. 하지만 아이피로만 잡아놓으면 에러가 난다.

http://zayuboy.blog.me/101990417

이 홈페이즐 참고하면 된다.

신고

'개발' 카테고리의 다른 글

eclipse short cut list  (0) 2010.11.20
Synergy 컴퓨터 화면 공유  (0) 2010.07.21
DLNA  (0) 2010.05.10
Java 디컴파일러  (0) 2010.05.01

단말기 화면 을 실시간으로 보자

2010.07.20 16:09 | Posted by JoyfulLife
http://androidhuman.tistory.com/entry/%EB%8B%A8%EB%A7%90%EA%B8%B0%EC%9D%98-%ED%99%94%EB%A9%B4%EC%9D%84-%EC%8B%A4%EC%8B%9C%EA%B0%84%EC%9C%BC%EB%A1%9C-%EC%BB%B4%ED%93%A8%ED%84%B0%EB%A1%9C-%EB%B3%B4%EB%A0%A4%EB%A9%B4-androidscreencast



<from 커니>

강의나 프리젠테이션 등을 할 때면 간혹 단말기의 화면을 실시간으로 컴퓨터 화면에 띄워야 할 경우가 있습니다.
저도 예전에 이게 필요했었는데.. 그 땐 못 찾았다가 어제 찾아보니 나오더군요. -_-;

androidscreencast 는 단말기의 화면을 컴퓨터에서 실시간으로 보여주며, 루팅된 단말기의 경우 컴퓨터쪽에서 직접 단말기를 제어하는 것도 가능합니다.

ADB 드라이버가 잡혀 있어야 하며, 실행을 위해서는 JRE가 필요합니다.


공식 사이트 주소는 http://code.google.com/p/androidscreencast/ 입니다~

신고

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

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
Tab을 사용면서 Title 변경하기..  (0) 2010.07.06

포인터

2010.07.15 23:49 | Posted by JoyfulLife
포인터를 공부 중이다. 포인터 공부할수록 C언어는 포인터라고 생각이 든다.

지금은 포인터를 리턴하는 것을 배우고 있다.


(?) test() (?)
{
static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
return a;
}

int main()
{
printf("%d", (?)test()(?));
}

7을 나오게 해보자.

함수의 리턴형은 더블 포인터인다.

단순하게

int ** test()

로하면 경고가 난다. a에 대한 것을 정확하게 리턴하지 못하기 때문이다.
타입이 일치해야지 경고가 나오지 않는다.

경고가 없이 리턴하는 법을 공부해보자.


타입의 일치가 씨언어에서 중요하다. 이것을 확실하게 알아야 한다.

static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
a+1 = ?
*a+1 =?
**a+1= ?

&a+1 =?

어떻게 계산을 해야 하는가?

저것은 타입을 알아야 풀수 있는 문제이다.

답은
a+1= (a번지 + 16byte);
*a+1=(a번지 + 4byte);
**a+1=2;
&a+1=(a번지 + 48byte);


이것을 푸는 법은 나중에 설명을 하겠다.


그럼 맨 처음 답을 알아보자.

이것은 내가 예전에 배운 것이라 잘 생각이 안난다. 아마 배열을 사용한다면 좀 특별한 규칙이 들어간다.
변수는 선언문과 배열 사이에 존재한다는 규칙이었나?ㅡㅡ;;

아무튼...

정확한 리턴형을 찾아보자.

int ** 라고 생각하는게 일반적이다. 왜냐하면 배열은 포인터이니깐.

아. 다시 생각해보니 헷갈린다.

우선 답은 int (*test())[4] 이다.

이걸 풀어보자면 int(*)[4] test();

이다. 하지만 이것은 문법적인 규칙에 어긋나서 못 쓴다고 들었다. 그 문법에 대한 규칙이 무엇일까 공부를 해봐야 하겠다.


신고

'C언어' 카테고리의 다른 글

교육3일차  (0) 2011.08.25
교육2일차  (0) 2011.08.23
교육1일차  (0) 2011.08.23
포인터  (0) 2010.07.15

Bitmap, Recycle()

2010.07.11 21:19 | Posted by JoyfulLife
Bitmap을 가지고 작업을 많이 하다보니 메모리에 제한이 많이 걸렸다.

그래서 구글 오픈 소스에서는 어떻게 이런 문제를 해결하는지 찾아보았다.

구글에서 한 방법은 쓰지 않는 Bitmap 에는 recycle() 을 걸어 주었다.

나도 똑같이 해보니 잘 되었다.

나는 기본적으로 화면이 finish() 가 되면 그 안에서 쓰는 bitmap은 다 메모리로 환원이 될줄 알았다. 하지만 되지 않았다.

SurfaceView를 하나 생성하고 그 안에서 Bitmap을 꽤 많이 만들었다. 그것을 recycle() 로 해제를 시키지 않았다.

 구글 소스를 통해서 recycle()을 많이 쓴다는 것을 알고 안쓰는 bitmap 은 모두 recycle()을 걸었다. 그렇게 해주니 어느 정도 효과가 나타났다. 예전에는 큰 이미지를 로딩하면 메모리 없다고 죽었는데 이제는 죽지는 않는다.

 앞으로는 태블릿이 대세가 될텐데 안드로이드는 아직 메모리 제한이 많이 걸려 있는 것 같다. 빨리 메모리 제한을 늘려야지 태블릿 개발이 활발해질 것 같다.

 역시 사람들이 많이 하는 것은 게임이다. 화려한 그래픽을 바탕으로 만들면 사람들의 이목을 쉽게 가져올 수 있다. 게임을 만들려면 메모리의 효율적이 사용이 필수이다. 절대 게임이 죽으면 안된다.

 자바 안에서 메모리를 효율적으로 사용할 수 는 노하우를 쌓아야겠다. 그래야 그것이 나의 자산이 될 것이다.

신고

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

http 통신  (2) 2010.07.22
단말기 화면 을 실시간으로 보자  (0) 2010.07.20
Bitmap, Recycle()  (1) 2010.07.11
마켓 QR 코드 만들기  (1) 2010.07.08
Tab을 사용면서 Title 변경하기..  (0) 2010.07.06
ScrollView + listView  (1) 2010.07.03

마켓 QR 코드 만들기

2010.07.08 22:08 | Posted by JoyfulLife
market://search?q=pname:com.gmp

이런 식으로 만들면 되면


http://qrcode.kaywa.com/

여기서 만들면 된다.
신고

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

단말기 화면 을 실시간으로 보자  (0) 2010.07.20
Bitmap, Recycle()  (1) 2010.07.11
마켓 QR 코드 만들기  (1) 2010.07.08
Tab을 사용면서 Title 변경하기..  (0) 2010.07.06
ScrollView + listView  (1) 2010.07.03
나인 패치  (0) 2010.06.29
TAG qr코드
이전 1 2 3 4 5 6 7 ··· 10 다음

티스토리 툴바