기본 콘텐츠로 건너뛰기

7월, 2012의 게시물 표시

2022 08 26 회사 워크샵

안드로이드 타이머 구현 하기

개발환경  : JDK 1.6, Android 2.1, window XP 이번에는 안드로이드에서 타이머 구현 방법에 대해 언급할려고 한다 . 쓰임세는 다양하다 .  게임에서 시계표시를 할수 있고 타이머 관련 구현도 가능하며 시간 간격에 맞게 어떤 작업을 수행하고자 할때도 쓰일것이다 .  그래서 한번은 정리할 필요가 있었다 . (1) java  에서 주로 쓰는 방법 안드로이드는  java 를 기반으로 하기 때문에  java  에서 사용하는 타이머 구현 방법을 떠올릴 것이다 . Java  에서 구현하는 방법은 여러가지가 있는데 그 첫번째는 스레드를 이용하는 것이다 . 추상클래스인  Runnable  를 상속받던지 아니면  Thread  클래스를 생성해서  run  함수를 구현하는데 그 속에 일정한 간격으로 루프를 돌수 있도록 구현 하면 된다 . private final class SwapViews implements Runnable {     private final int mPosition;     public SwapViews(int position) {         mPosition = position;     }     public void run() {         //  기능구현                       Thread.sleep(1000);// 1 초의 정지     } } //  위 클래스 사용 SwapViews swapViews = new SwapView(0); swapViews.start(); 두번째는  Timer  를 이용하는 방법이다 . Timer  클래스는 시간관리를 위해 만들어진 클래스 이므로 이것이 타이머 관리를 위해 더 적절한 방법일지도 모르겠다 . 그리고 구현하기도 쉽다 .  파라미터로 몇 개의 값만 넘기면 되기 때문이다 . 예제를 보게 되면 첫번쨰 파라미터는 작업을

java string.format

★ 내용 - C의 printf()와 같은 기능 - 날짜 이외에도 표시할 수 있다. - %d : 정수 - %s : 문자 - %f : float형 소수 ★ 예제 String str = String.format("H_%d", 2); // String str = H_2; String str2 = String.format("H_%d", 3); // String str2 = H_3; ★ 심화 - %02d : 둘째 자리에 정수를 받아 넣는데 만약 한자리의 정수가 오면 앞에 '0'을 붙이고 정수가 붙음 즉, 1을 넣으면 => 01 12를 넣으면 => 12 [출처] [Java] String.format()|작성자 길상

안드로이드 pdf/hwp 호출

Intent intent = new Intent();   intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   intent.setAction(android.content.Intent.ACTION_VIEW);   intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);   if (file.getName().endsWith(".pdf")){  intent.setDataAndType(Uri.fromFile(file), "application/pdf");   }else if (file.getName().endsWith(".hwp")){ intent.setDataAndType(Uri.fromFile(file), "application/hwp");   }   try{    startActivity(intent);   }catch(ActivityNotFoundException e){    util.showLongToast("해당파일을 실항할 수 있는 어플리케이션이 없습니다.\n파일을 열 수 없습니다.");    e.printStackTrace();   } 출처 -  http://ldelight.tistory.com/tag/android%20pdf%20%EC%8B%A4%ED%96%89

안드로이드 어플 내 언어 설정 변경

출처 - http://www.androidside.com/B49/52368 [추천하는 방법은 아니랍니다.. 꼼수...] 아래와 같이 하면 변경이 됩니다만.. 전체적으로 변경되지 않네요. 아울러.. 매니페스트에 아래와 같이 입력해야됩니다. <!-- 런타임에 로켈을 바꾸면 화면이 점점 더 작아지는 현상 방지 --> <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true" /> import java.util.Locale; import android.content.res.Configuration; import android.net.ConnectivityManager;         // 언어 설정 메소드     public void setLocale(String charicter) {     Locale locale = new Locale(charicter);     Locale.setDefault(locale);     Configuration config = new Configuration();     config.locale = locale;     getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());     }     // 사용시     public void onCreate(Bundle savedInstanceState) { setLocale("ko");//언어 변경   } 폰 환경설정은 변경이 되는것이 아닙니다... 이점 유의하세요..

jad -- class > java 로 변환

그 유명한? JAD!!  이클립스로 설치 가능한데 어디가 막혔는지 설치가 되질 않는다..-_-;; 남이 만든 소스를 보고 싶을 때 아주 유용한 프로그램 되시겠다.(사실 class 파일만 있어서 사용한거에요. 남의거 배낄려고 하는거 아네요)  jad.zip 압축을 풀면 jad.exe 파일이 있다. 디컴파일시킬 프로그램은 같은 폴더안에 넣어준다.(아니면 경로를 써야하므로) cmd로 해당 jad 폴더로 들어갑니다. 명령어는 jad hlep를 보고 싶으시면 커맨드 창에 jad를 치거나 폴더안의 readme를 읽어주시길. 이제 디컴파일의 명령어를 해보자. >jad -o -s jad <클래스이름>  -o 는 무조건 덮어쓴다. -s 는 완료하면 jad를 끝낸다 이다.  위와 같은 문구가 보인다면 폴더로 가보자. 기대하던 java 파일이 당신을 기다리고 있을것이다.

안드로이드 다국어 지원 방법

안드로이드를 개발을 하다보면, 각각의 나라마다 해당 국가의 언어를 표시해 줘야 할 경우가 생깁니다. 그럴경우.. 음.. 굉장한 난관에 부딪히게 되는데요. 그러한 이유때문에 안드로이드에서는 단말에 설정되 있는 시스템언어에 따라 자동으로 언어를 설정해 주는 기능을 제공합니다. 그 기능은 바로 안드로이드 Project -> res폴더 안에 -> values 라는 string.xml 포함하고 있는 폴더를 이용한 방법인데요. 보통 프로젝트를 개발할 시에는 하나의 values에 하나의 string.xml을 사용하게 됩니다. 하지만, 아래와 같이 언어별 폴더를 따로 만들게 되면, 단말에 설정된 시스템언어를 기준으로 자동으로 지정된 values 폴더를 참조 하게 됩니다. 자 그럼!! 사용 방법을 알아볼까요? 위에서 보시는 것과 같이, "values-en" , "values-ko" 라는 폴더를 만들었습니다. 그리고 각각의 폴더마다 "strings.xml"이 존재하는 것 을 볼 수 있습니다. 각각 단말에 설정에 언어에 의해서 해당폴더의 "strings.xml"을 참조하게 되는 것이지요. 음 근데 왜 values 폴더 옆에 en 과 ko 라는 네임이 붙은 것 일까요? 네 맞습니다. 그것이 시스템 언어에서 구분자로 사용하고 있는 값이기 때문입니다. 한국어는 "ko" , 미국어는 "en", 일본어는 "ja" 이런식으로 값을 사용하고 있습니다. (다른언어를 더 사용하고 싶다면, 이클립스에서 Locale. 까지 입력하시면 제공하는 언어들을 더 보실 수 있습니다.) 만약 일본어를 추가해 주고 싶다면, "values-ja" 라는 폴더를 만들어서 사용하면 되겠죠? 자 다음은 strings.xml 내부 모습을 살펴 보겠습니다. values-en 폴더의 strings.xml 파

Lint API Check

Lint  API  Check posted  Feb 15, 2012 2:54 PM  by Tor Norbye  ADT 가 17 버전으로 업데이트 되면서 Lint 툴에도 많은 향상이 이루어졌습니다. 체크하는 항목 수가 두배 가까이 증가하였으며, 기본 구조도 많이 개선되었습니다. 이제 Lint 툴은 자바 소스 뿐만아니라, 컴파일된 바이트 코드도 분석합니다. 덕분에, 새로운 종류의 문제들을 사전에 감지 할 수 있게 되었습니다.  한 가지 예를 들어 볼까요? 만일 여러분이  API  4 (안드로이드 1.6) 버전을 지원하는 어플리케이션을 작성하기로 마음먹었다고 상상해보세요. 아마 메니페스트에는 다음과 같이 값이 설정될 것 입니다.    <uses-sdk android:minSdkVersion="4" />  그리고 Lint 툴을 돌려 보면 아마 다음과 같은 에러가 발생할 수도 있습니다. src/com/example/android/ api s/app/Animation.java:70: Error:  Call   requires   API level  5 (current min is 4): android.app.Activity#overridePendingTransition [New Api ]     overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);     ^ src/com/example/android/ api s/animation/AnimationCloning.java:80: Error:  Call requires   API   level   11  (current min is 4): android.animation.ObjectAnimator#ofFloat [New Api ]     ObjectAnimator anim1 = ObjectAnimator.ofFloat(balls.get(0),

[FM2011] 22 시즌 마무리

22시즌 마무리가 되었습니다 k리그 마무리는 저번 글에 올려드렸고 이젠 수원시청 이야기 및 세계 마무리 이야기를 하겠습니다. - 수원시청 베스트 11 수원시청 베스트 11입니다 ~ 김동진,Zwane 는 경기 별로 뛰지도 않앗는데.. ㄷㄷ 그리고 배승진도 시즌 초반때나.. 좀 뛰었었는데.... 골키퍼도 정의도.. 김승규가 더 많이 했는데... - 수원시청이 선정한 올해의 선수 수원시청 팬들이 선정한 올해의 선수입니다 이번시즌 엄청난 활약을 해준 Stein 입니다. ㅎㅎ - 번외 베스트 11 그들은 어디있는가? 역대 베스트 일레븐이였던 선수들이 어디있는지 확인하는 시간입니다.~ Osman 은 루빈카잔, 유르첸코는 비테세,Fernando Carneiro 는 알가라파, 김용호는 데 그라프샤프 로 가있네요~ - 세계 골든볼 & 올해의 선수 올해의 선수와 골든볼 선수가 같은 선수입니다. 이젠 거의다가 생성이네요 ㅎㅎ 올해의 선수인 Asante 의 능력치도 같이 올려드립니다~ 괴에물~~ - 아시아 올해의 선수 아시아 올해의 선수로는 이민 선수이네요~ 대한민국 선수가 올해의 선수상을 수상하니 기분 좋습니다 ㅎㅎ - 이민 능력치 나름 준수합니다 ㅋㅋ[저희팀 배상철의 업그레이드 버전입니다 ㅋㅋㅋ] - 아시아 올해의 유망주  아시아 올해의 유망주 입니다. Yousef Khalil 인데.. 요르단 선수이네요~ 오홍~ 22살이고 능력치도 괜찮네요~ - 수원시청 선수 소개  올해의 선수상에 빛나는 Stein 입니다 정말 잘해줬죠 ㅎㅎ 기특한 선수입니다~ 코너킥에서 득점을 많이 해준 선수입니다 ㅎㅎ 공중볼에 탁월하죠 ㅋㅋ 오른쪽 윙백을 해주는 선수.. 한번식 삽질을 해서 그렇치.. 꽤 잘해줬습니다 ㅋㅋ 부동의 주전 골키퍼~ 아직 32살~ 꾸준히 해주시길 ㅋㅋ 이번시즌 이적와서 엄청난 활약을 해준 김용혁입니다. ㅎㅎ 빠른 스

java 비트 연산자

2.2.4 비교연산자 이항연산자로, 피연산자 서로를 비교하는데 사용하는 연산자 일반적으로, if, while, do-while 문과 같은 흐름 제어 구조에서 사용된다. 리턴하는 결과는 true나 false같은 boolean형이다. 연산자 사용목적 == 같다 != 같지않다 > 크다 >= 크거나 같다 < 작다 <= 작거나 같다 예제 - 비교연산자 사용 * 실행결과 b가 a보다 큰 수가 되려면 몇 번 반복해야 하는가? 5번 반복해야 한다. 2.2.5 논리연산자 and, or, not 세가지가 있다. 피연산자와 결과값은 true나 false가 된다. 연산자 사용목적 && and 연산 - 피연산자가 모두 true이어야 true || or 연산 - 피연산자가 하나만 true이어도 true ! not 연산 예제 - 논리연산자 사용 * 실행결과 조건을 만족하지 못했습니다. 2.2.6 비트연산자 피연산자의 비트 표현에 적용되는 연산자 정수형과 문자형에서만 가능하고 실수형이나 부울린형에서는 에러를 발생시킨다. 연산자 사용목적 & 비트 단위의 and (Bitwise and) | 비트 단위의 or ^ 비트 단위의 xor << 왼쪽으로 shift >> 오른쪽으로 shift >>> 최상위비트를 0으로 채우고 오른쪽 shift ~ 1의 보수  두 수를 예를 들어 비트 연산 결과를 나타내보자. 10진수 11309는 이진수로 0010 1100 0010 1101 이고 10진수 798은 이진수로 0000 0011 0001 1110 이다. 연산식 2진수 11309 & 798          0010 1100 0010 1101 and   0000 0011 0001 1110         ─────────────              0000 0

[FM2011]22/11 수원시청 이야기

안녕하세요~ 수원시청 22시즌이 마무리가 되엇습니다. 11월 일정은 별로 없어서 12월 일정까지 다 합쳐서 올려드립니다. 그리고 다음 번에는 22시즌 마무리 이야기를 올려드리겟습니다. 그럼 11월 이야기 시작하겠습니다.~ - 11/12 알 힐랄 ACL 결승 원정 경기 0:4 승 전반전만 해도 역시 결승전 답구나! 했습닌다 겨우 한골을 득점했고. 경기도 상당히 박빙이였습니다.. 허나 후반전엔 알힐랄이 급격히 무너지더라구요.. 덕분에 3골을 더 추가하면서 4:0 승리를 했습니다 ~ 아챔 우승~~ 클럽월드컵에 나갈수 있게 되었습니다 ~ ㅎㅎ Hokstad 가 득점왕을 차지했습니다~ 13골.. 많이도  넣었네요 ㅎㅎㅎ - k리그 최종 순위 k리그 최종순위입니다. 울산현대미포가 탈락은 저번달에 알게 되었고.. 저도 76점으로 최고승점 기록했구요.. 플레이 오프에선 서울이 챔피언 결정전까지 올라왔습니다. - 11/30 챔피언 결정전 원정 경기 2:2 무 휴..원정가서 질뻔했습니다. 역시 서울이란 생각이 들더군요..  전반전에 2:1로 리드를 당했으나 후반전에 한골을 만회하면서 동점을 만들고 경기를 끝냈습니다.. 정말 지는줄 알았습니다... 휴.. - 12/4 챔피언 결정전 홈 경기 5:1 승 유후 리그 우승했습니다 !! 스코아가 5:1이라고 보이긴 하지만 자세히 보시면.. 연장전까지 갔습니다.. 서울의 저력은 대단하단 생각이 드네요.. 전반전엔 골이 안터지고. 후반전 시작과 함께 이민구의 중거리 슛이 골 포스트 맞으면서 들어가면서 리드를 했으나.. 더이상 득점이 안나오더군요.. 조마조마 하면서 있던차.. 종료 시간이 다와서 한골을 먹혔습니다.. ㅠ 역습에 당했습니다... ㅠ 그리고 연장전 돌입... 하지만 서울이 플레이오프 죄다 거치고 오는 바람에 체력이 없는게 문제였더군요...  연장전에서 4골을 헌납하면서 마지막을 못 버티고 무너졌습니다.... 꽤 긴장타면서 경기를 진행했네요