'분류 전체보기'에 해당되는 글 444건

  1. android swipe action 2012.06.15
  2. 수원대 2012.06.01
  3. SqlLite 차이 2012.06.01

android swipe action

from Develop/Android 2012. 6. 15. 01:13


public class ListNewsActivity extends Activity implements OnGestureListener {


String TAG = "ListNewsActivity";


private static final int SWIPE_MIN_DISTANCE = 120;

private static final int SWIPE_MAX_OFF_PATH = 250;

private static final int SWIPE_THRESHOLD_VELOCITY = 200;


private static final int DIALOG_PLEASE_WAIT = 100;

private GestureDetector gestureDetector;

View.OnTouchListener gestureListener;


private Animation slideLeftIn;

private Animation slideLeftOut;

private Animation slideRightIn;

private Animation slideRightOut;


private static int MAX_STREAMS = AppSettings.getStreamList().size();


Context context;


ViewFlipper flipper;


StreamHeader header;


int currentStreamIndex = 0;


ArrayList<StreamNav> navList = new ArrayList<StreamNav>();

ArrayList<StreamGridView> gridList = new ArrayList<StreamGridView>();



/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {


    context = getApplicationContext();

    super.onCreate(savedInstanceState);

    setContentView(R.layout.stream);


    if (AppSettings.userToken == null) {

        AppSettings.getUserToken(context);

    }


    header = (StreamHeader) findViewById(R.id.stream_header);

    setHeaderTitle();


    flipper = (ViewFlipper)findViewById(R.id.stream_flipper);


    boolean loadData = false;

    Log.v(TAG, "No. of streams: " + String.valueOf(AppSettings.getStreamList().size()));

    for (Stream stream : AppSettings.getStreamList()) {

        Log.v(TAG, "Checking Stream  " + stream.getName());

        if (stream.getPosts() == null || stream.getPosts().size() == 0) {

            loadData = true;

            Log.v(TAG, "Empty Stream for " + stream.getBlogId() + ". Data will be loaded.");

            break;

        }

        else {

            Log.v(TAG, "Stream " + stream.getName() + " is populated. Posts: " + String.valueOf(stream.getPosts().size()));

        }

    }


    setupNavAndGrids();


    if (loadData) {

        new LoadStreamTask().execute();

    }

    else {

        populateGrids();

    }


    slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.stream_flipper_slidein_from_right);

    slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.stream_flipper_slideout_to_left);

    slideRightIn = AnimationUtils.loadAnimation(this, R.anim.stream_flipper_slidein_from_left);

    slideRightOut = AnimationUtils.loadAnimation(this, R.anim.stream_flipper_slideout_to_right);


    gestureDetector = new GestureDetector(new MyGestureDetector());

    gestureListener = new View.OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {


            if (gestureDetector.onTouchEvent(event)) {

                return true;

            }

            return false;

        }

    };


}


public void setupNavAndGrids() {


    LinearLayout llNav = (LinearLayout) findViewById(R.id.stream_nav_layout);


    View.OnClickListener navOnClickListener = new View.OnClickListener() {


        @Override

        public void onClick(View v) {


            StreamNav nav = (StreamNav)v;

            navigateToStream(nav.getStreamIndex());


        }

    };


    for (int i = 0; i < MAX_STREAMS; i++) {

        StreamNav nav = new StreamNav(context, null);

        nav.setStreamIndex(i);

        nav.setOnClickListener(navOnClickListener);

        navList.add(nav);

        llNav.addView(nav);


        StreamGridView gv = new StreamGridView(context, null);

        gv.setOnTouchListener(gestureListener);

        gridList.add(gv);


        flipper.addView(gv);


    }


    navList.get(0).setSelected(true);


}


void navigateToStream(int newStreamIndex) {


    for (StreamNav nav : navList) {

        if (nav.getStreamIndex() == newStreamIndex) {

            nav.setSelected(true);

        }

        else {

            nav.setSelected(false);

        }

    }

    Log.v(TAG, "Navigate To Stream: currentStreamIndex=" + String.valueOf(currentStreamIndex) + " newStreamIndex " + String.valueOf(newStreamIndex));

    if (currentStreamIndex < newStreamIndex) {

        int ctr = newStreamIndex - currentStreamIndex;

        for (int i = 0; i < ctr; i++) {

            showNext();

        }

    }

    else {

        int ctr =  currentStreamIndex - newStreamIndex;

        for (int i = 0; i < ctr; i++) {

            showPrevious();

        }

    }

}


public void showNext() {

    Toast.makeText(context, "Show Next Page for Flipper", Toast.LENGTH_LONG);

    flipper.setInAnimation(this, R.anim.stream_flipper_slidein_from_right);

    flipper.setOutAnimation(this, R.anim.stream_flipper_slideout_to_left);

    flipper.showNext();

    setStreamIndex(1);

    setHeaderTitle();

    }


public void showPrevious() {

    Toast.makeText(context, "Show Previous Page for Flipper", Toast.LENGTH_LONG);

    flipper.setInAnimation(this, R.anim.stream_flipper_slidein_from_left);

    flipper.setOutAnimation(this, R.anim.stream_flipper_slideout_to_right);

    flipper.showPrevious();

    setStreamIndex(-1);

    setHeaderTitle();

}


void setStreamIndex(int step) {

    if (step == 1) {

        if (currentStreamIndex == MAX_STREAMS) {

            currentStreamIndex = 0;

        }

        else {

            currentStreamIndex++;

        }

    }

    else {

        // -1 which means previous

        if (currentStreamIndex == 0) {

            currentStreamIndex = MAX_STREAMS - 1;

        }

        else {

            currentStreamIndex--;

        }

    }

}


void setHeaderTitle() {

    header.setTitle(AppSettings.getStreamList().get(currentStreamIndex).getName());

}


void populateGrids() {

    int pos = -1;

    for (StreamGridView sgv : gridList) {

        pos++;

        Log.v(TAG, "Loading Stream for " + AppSettings.getStreamList().get(pos).getName() + "; Posts: " + String.valueOf(AppSettings.getStreamList().get(pos).getPosts().size()));

        ArrayList<Post> posts = AppSettings.getStreamList().get(pos).getPosts();

        sgv.adapter = new LazyPostItemAdapter(ListNewsActivity.this, posts, gestureListener);

        sgv.gvStream.setAdapter(sgv.adapter);


    }

}

class LoadStreamTask extends AsyncTask<Void, String, Void> {


    @Override

    protected void onPreExecute() {

        super.onPreExecute();

        showDialog(DIALOG_PLEASE_WAIT);


    }


    @Override

    protected Void doInBackground(Void... unused) {


        for (Stream stream : AppSettings.getStreamList()) {


            if (stream.getBlogId().equalsIgnoreCase("popular")) {

                stream.setPosts(Post.getPopularStream());

            }

            else if (stream.getBlogId().equalsIgnoreCase("recent")) {

                stream.setPosts(Post.getRecentStream());

            }

            else {

                Blog blog = Blog.getBlog(stream.getBlogId());

                stream.setPosts(Post.getPostsForBlog(blog));

            }

        }


        return null;

    }


    @Override

    protected void onPostExecute(Void unused) {


        populateGrids();

        dismissDialog(DIALOG_PLEASE_WAIT);

    }

}


@Override

protected Dialog onCreateDialog(int id) {

    switch (id) {

        case DIALOG_PLEASE_WAIT:

            ProgressDialog mProgressDialog;

            mProgressDialog = new ProgressDialog(this);

            mProgressDialog.setMessage("Loading Streams...");

            mProgressDialog.setCancelable(false);

            mProgressDialog.show();

            return mProgressDialog;

        default:

            return null;

    }

}


class MyGestureDetector extends SimpleOnGestureListener {

    @Override

    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

        Log.v(TAG, "onFling");

        try {

            if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)

                return false;

            // right to left swipe

            if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {

                flipper.setInAnimation(slideLeftIn);

                flipper.setOutAnimation(slideLeftOut);

                flipper.showNext();

            }  else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {

                flipper.setInAnimation(slideRightIn);

                flipper.setOutAnimation(slideRightOut);

                flipper.showPrevious();

            }

        } catch (Exception e) {

            // nothing

        }

        return false;

    }

}


@Override

public boolean onTouchEvent(MotionEvent event) {

    if (gestureDetector.onTouchEvent(event))

        return true;

    else

        return false;

}



@Override

public boolean onDown(MotionEvent e) {

    // TODO Auto-generated method stub

    return false;

}



@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

        float velocityY) {

    // TODO Auto-generated method stub

    return false;

}



@Override

public void onLongPress(MotionEvent e) {

    // TODO Auto-generated method stub


}



@Override

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,

        float distanceY) {

    // TODO Auto-generated method stub

    return false;

}



@Override

public void onShowPress(MotionEvent e) {

    // TODO Auto-generated method stub


}



@Override

public boolean onSingleTapUp(MotionEvent e) {

    // TODO Auto-generated method stub

    return false;

}

,

수원대

from Board/Freeboard 2012. 6. 1. 17:05

설정

V 로그아웃

- 이미지 캐쉬 삭제

V 업데이트

V 닫기 버튼



인트로

V 최근작업(

? 최근소식에 담벼락 타이틀 없어서 아래에 날짜 표시


게시하기

V 게시판별 게시하기 활성 비활성

V 링크 노트 추가

- 설문하기

- 클릭시 완료버튼 활성화

- 날짜 셋팅



메인웹

V 더보기

V? 각 게시물별 탭코드와 현재 보는 탭코드 다를시 어떻게 할건지

V 편집 모드 확장보기시 적용 안되는 문제

V 타이틀


V 출석부

사진, 링크

? 사진, 링크 편집으로 해서 삭제하는 루틴은 담벼락 등 게시판에서 하는걸로 통일하는건 어떤지


강의노트

- 편집모드(편집시 어떻게) 

- 올리기

V 알림

- 클릭시 이동


댓글

- 에니메이션

? 댓글 메인 글이 길때 짤리는지 확인

- 삭제 

? 추천시 바로 닫는지 


캘린더

- 날짜 지났을시 비활성화


설문하기

- 설문하기 체크박스 호출

- 참여하기 유아이


파일 다운로드

- 프로그래스바

- 저장경로


상세예상문제

- 뒤로가기시 이전 페이지 남아있는 부분 처리

- 교수일 때 권한

- 경고 및 Yes or No 팝업

리스트 팝업

프로그래스 팝업


문팀장님

- 댓글 소팅 순서 최근이 나중으로

- 추천시 리턴으로 메시지 리스트 안옴



로그인 

- 키보드 스크롤


경고, 에러팝업

- 삭제하기 등


공지사항추천취소 버튼

- 푸쉬 이용

- 로그인식 이용


페타즈 문의

설정창 팝업으로

파일 올릴때 수정이 없는지.(같은 파일일 경우 수정할려면 파일명 규칙을 알아야함)

프로필 사진이 동그란 구멍보다 작아서 투명하게 보임파일 다운로드 취소 버튼

링크 삭제 버튼

설정창 배경이미지(프로필 사진 수정한)



알림 댓글일때 댓글로 바로 가는지.. 여부



- 기타 하위순위




오류 체크

V 로그인창 전에 메뉴창 뜨면서 오류 발생 요소(알람어탭터 생성하느라 에러발생했음)

- 로그인 업데이트 유아이러너블 빠져나가는 구문 문제로 설치 실패시 계속 설치 창 뜸


,

SqlLite 차이

from Develop/Database 2012. 6. 1. 10:30

top -> limit


select top 100 * from table

-> select * from table limit 100


auto_increment -> X

Integer Primary key로 지정시 자동

,