------소스 코드------
@Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { // 백 버튼
  Toast.makeText(this, "Back키를 누르셨군요, Toast.LENGTH_SHORT).show();
        } else if (event.getKeyCode() == KeyEvent.KEYCODE_SEARCH) { // 검색버튼
  Toast.makeText(this, "검색키를 누르셨군요, Toast.LENGTH_SHORT).show();
        }
        return true;
    }

또는

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
     // TODO Auto-generated method stub

     switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
  Toast.makeText(this, "Back키를 누르셨군요, Toast.LENGTH_SHORT).show();
   break;
}

'IT 공부 > 안드로이드' 카테고리의 다른 글

안드로이드 예제  (2) 2012.03.04
android 종료  (1) 2012.03.03
android Thread Counting  (2) 2012.03.03
android 타이틀바 없애기  (0) 2012.03.03
Parser  (1) 2012.03.03


스레드를 이용해서 카운트 하는 작업입니다.

이소스는 5에서 카운트 되며 5에서 0.5초 텀을 준다.


-------------소스코드-------------

tv = (TextView) findViewById(R.id.num);
  thread = new Thread(new Runnable() {
   public void run() {

    while (true) {
     
     handler.post(new Runnable() {
      public void run() {
       tv.setText("" + NumCount);
      }
     });
     
     try {
      if(NumCount==5)
       Thread.sleep(500);
      else
      Thread.sleep(1000);
      NumCount++;

     } catch (InterruptedException e) {
      e.printStackTrace();
     }
     if (NumCount == 6){
      break;      
     }
     
    }
   }

  });
  thread.start();

'IT 공부 > 안드로이드' 카테고리의 다른 글

android 종료  (1) 2012.03.03
android back key Event  (2) 2012.03.03
android 타이틀바 없애기  (0) 2012.03.03
Parser  (1) 2012.03.03
이클립스 느낌표 문제  (2) 2012.02.26

매니페스트에
----------타이틀바 없애기----------
<activity
            android:name="NAMEActivity"
            android:label="@string/app_name"        
            android:theme="@android:style/Theme.NoTitleBar" >

----------풀스크린----------
<activity
            android:name="NAMEActivity"
            android:label="@string/app_name"        
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

생성할때
requestWindowFeature(Window.FEATURE_NO_TITLE);
추가

'IT 공부 > 안드로이드' 카테고리의 다른 글

android back key Event  (2) 2012.03.03
android Thread Counting  (2) 2012.03.03
Parser  (1) 2012.03.03
이클립스 느낌표 문제  (2) 2012.02.26
JSON을 활용한 검색기  (2) 2012.02.25
보통 안드로이드 에서는 Xmlpullparser 를 이용해서 웹페이지의 내용을 파싱 해오는 게 가장 효육적이라고 한다.
하지만, 그 웹페이지에서 RSS를 지원해야 쉽게 이용이 가능하다.
RSS를 지원하지 않는다면 Xmlpullparser 를 이용해서 파싱을 해 오는 것은 아무래도 힘들어 보인다.

이에 RSS를 지원하지 않는 사이트를 파싱해올 수 있는 DOM 이나 Jericho를 사용할 수 있는데,
보통 Jericho를 많이 이용하는것 같다.

위의 소스를 이용하여 파싱해 올 수 있지만, jericho.jar 파일을 import 시켜서 사용해야 하며,
jericho는 원래 한글을 지원하지 않지만,
java에서 한글을 지원하기 때문에 소스를 간단히 수정해 준다면, 이를 이용 가능하다.

source = new Source(new URL(sourceUrlString));

 부분을

 URL sUrl= new URL(sourceUrlString);
 InputStream is = sUrl.openStream(); 
 Source source=new Source(new InputStreamReader(is,"euc-kr"));

물론 "euc-kr" 부분은 사이트의 "charset" 에 맞추어 변경해 주어야 한다. ex> UTF-8 KSC5601..... etc


그렇다면 jericho.jar 파일을 임포트 시키는 방식은 어떠할까?

보통 안드로이드 개발로는 Eclipse를 사용한다. Eclipse 에 Libraries 를 등록하는 절차에 대해 설명한다면,

--------------------------------------------------------------------------------------------
먼저 Project에 라이브러리를 import시킨다.

즉, Project -> import -> General -> File System -> jar파일등록하면 Project에 해당 Library가 추가된다.

 

다음으로는 해당 Library를 Project에서 사용할 수 있도록 설정을 해주어야 한다.

Project선택 후

Properties(Alt + Enter) -> Java Build Path -> Libraries Tab -> Add JARs -> JAR파일 선택

 

 

또는 import 시키지 않고 외부에서 Library를 가져올 수 도 있다.

Project선택 후

Properties(Alt + Enter) -> Java Build Path -> Libraries Tab -> Add External JARs -> JAR파일 선택

 

 

 

*. 추가 확인 사항

Jericho HTML Parser를 설치한 후에 java 소스 상에서 아래와 같이 사용할 경우.

Source source = null;

source = new Source(new URL(sourceUrlString));

Source Import시 두가지 중 import net.htmlparser.jericho.Source; 를 설정해 주어야 한다

---------------------- 출처 : http://dodo4989.tistory.com/106 ----------------------------------


------------------------------------------소스코드-------------------------------------------



 String yourUrl =  "http://www.naver.com/";

  tv = (TextView) findViewById(R.id.tv1);
   tv.setText(getHtmltoText(yourUrl));




public String getHtmltoText(String sourceUrlString) {
  Source source = null;
  String content = null;

  try {
   // HTML을 읽을 URL
   URL sUrl= new URL(sourceUrlString);
    InputStream is = sUrl.openStream();
   source=new Source(new InputStreamReader(is,"UTF-8"));

   

   // 처음부터 끝까지 순차적으로 구문 분석.
   source.fullSequentialParse();

   // HTML MarkUp에서 Text Contents만 가져와서 String으로 변환.
   content = source.getTextExtractor().toString();
  } catch (Exception e) {
   e.printStackTrace();
  }
  return content;
 }

'IT 공부 > 안드로이드' 카테고리의 다른 글

android Thread Counting  (2) 2012.03.03
android 타이틀바 없애기  (0) 2012.03.03
이클립스 느낌표 문제  (2) 2012.02.26
JSON을 활용한 검색기  (2) 2012.02.25
XML을 활용한 RSS리더기  (1) 2012.02.25

가끔, 이클립스 빨간색 느낌표이 폴더위에 떠있을때가 있다

이러한 경우는 A컴퓨터에서 B컴퓨터 옮겨 와서 이런 경우가

대부분인데 해결방안은,

1. Build Path가 맞이 않을 경우입니다.
->프로젝트 오른쪽눌러서 Build Path Setup
   들어가서 X된 라이브러리를 삭제하시고,
   정확한 위치를 잡아주시면 됩니다.
2. JDK가 틀린 경우입니다.
-> 이건,,, JDK를 맞춰야 겟죠..


정안되면 프로젝프 파일을 만들어서 그파일로  Ctrl+C & V하세요^^

'IT 공부 > 안드로이드' 카테고리의 다른 글

android 타이틀바 없애기  (0) 2012.03.03
Parser  (1) 2012.03.03
JSON을 활용한 검색기  (2) 2012.02.25
XML을 활용한 RSS리더기  (1) 2012.02.25
파서(Get)  (1) 2012.02.25

JSON문법은 객체로 사용가능하다.

문자열로 이루어져 있다.

소스코드

메니페스트
 <uses-permission android:name="android.permission.INTERNET"/>
중요합니다.





XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="여기야" />

</LinearLayout>





중요소스
try{
   URL url=new URL("http://rlqks132.tistory.com/");
   URLConnection connection=url.openConnection();
   
   String line;
   StringBuilder sb=new StringBuilder();
   
   BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream()));
   while((line=reader.readLine())!=null){
    sb.append(line);
   }
   
   JSONObject json=new JSONObject(sb.toString());
   sb.setLength(0);
   JSONObject resopnseData=(JSONObject)json.get("resonseDta");
   JSONArray results=(JSONArray)resopnseData.get("results");
   
   for(int i=0;i<results.length();i++){
    JSONObject result=(JSONObject)results.get(i);
    sb.append(result.get("title")).append("\n\n");
   }
   TextView tv = (TextView) findViewById(R.id.textView);
   tv.setText(sb.toString());
  }catch(Exception e){}

'IT 공부 > 안드로이드' 카테고리의 다른 글

Parser  (1) 2012.03.03
이클립스 느낌표 문제  (2) 2012.02.26
XML을 활용한 RSS리더기  (1) 2012.02.25
파서(Get)  (1) 2012.02.25
Activity 화면창  (3) 2011.11.03


우선,

RSS란?

RSS는 웹상에 존재하는 정보들을 배급 혹은 배포하기 위해 사용되는 방법 중 하나이다. 기존 W3C의 RDF의 XML을 응용한 형태이며, 최근에는 뉴스나 블로그 등 웹상에서 컨텐츠를 취급하는 경우에 있어서 안쓰이는 일이 없다. (중요하단말..)블라블라블라...





예제 소스
메니페스트
 <uses-permission android:name="android.permission.INTERNET"/>
꼭 추가하세요





XML파일
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>




주요 메인 소스
try {
   StringBuilder sb = new StringBuilder();
   URL url = new URL(
     "http://news.chosun.com/site/data/html_dir/2012/02/25/2012022500120.html?news_top");
   XmlPullParser parser = XmlPullParserFactory.newInstance()
     .newPullParser();
   parser.setInput(url.openStream(), null);

   int eventType = parser.getEventType();
   String tag;
   boolean inTitle = false;

   while (eventType != XmlPullParser.END_DOCUMENT) {
    Log.d("END_DOCUMENT", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    switch (eventType) {
    case XmlPullParser.TEXT:
     tag = parser.getName();
     if (inTitle) {
      sb.append(parser.getText()).append("\n");
     }
     break;
    case XmlPullParser.END_TAG:
     Log.d("END", "EEEEEEEEEEEENNNNNNNNNNNNNNNNDDDDDDDDDDDDDD");
     tag = parser.getName();
     if (tag.compareTo("titile") == 0) {
      inTitle = false;
     }
     break;
    case XmlPullParser.START_TAG:
     Log.d("START",
       "SSSSSSSSSSSTTTTTTTTTTTTAAAAAAAAAAAAAARRRRRRRRRRRRRTTTTTTTTTTT");
     tag = parser.getName();
     if (tag.compareTo("title") == 0) {
      inTitle = true;
     }
     break;
    }
    eventType = parser.next();
   }
   TextView tv = (TextView) findViewById(R.id.textView);
   tv.setText(sb.toString());
  } catch (Exception e) {

  }

하 오늘도 가는구나

'IT 공부 > 안드로이드' 카테고리의 다른 글

이클립스 느낌표 문제  (2) 2012.02.26
JSON을 활용한 검색기  (2) 2012.02.25
파서(Get)  (1) 2012.02.25
Activity 화면창  (3) 2011.11.03
Animation effect  (1) 2011.11.03

HTTP REST
웹서버 구축시 사용되는 웹서비스 이다.

Get요청
우선 메니페시트 파일에
 <uses-permission android:name="android.permission.INTERNET"/>
꼭 추가하시고!!

 try{
         HttpClient client=new DefaultHttpClient();
         HttpGet get=new HttpGet();
         get.setURI(new URI("http://rlqks132.tistory.com/"));
         HttpResponse resp=client.execute(get);
         BufferedReader br=new BufferedReader(new InputStreamReader(resp.getEntity().getContent()));
         
         String str=null;
         StringBuffer sb=new StringBuffer();
         while((str=br.readLine())!=null){
          sb.append(str).append("\n");
         }
         br.close();
         TextView tv=(TextView)findViewById(R.id.textView);
         tv.setText(sb.toString());
        }catch(Exception e){
        }

예제 입니다.^^

'IT 공부 > 안드로이드' 카테고리의 다른 글

JSON을 활용한 검색기  (2) 2012.02.25
XML을 활용한 RSS리더기  (1) 2012.02.25
Activity 화면창  (3) 2011.11.03
Animation effect  (1) 2011.11.03
화면 변화  (1) 2011.11.02

타이틀바 없애기
requestWindowFeature(Window.FEATURE_NO_TITLE);
인디케이터 없애기
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

'IT 공부 > 안드로이드' 카테고리의 다른 글

XML을 활용한 RSS리더기  (1) 2012.02.25
파서(Get)  (1) 2012.02.25
Animation effect  (1) 2011.11.03
화면 변화  (1) 2011.11.02
자유곡선  (2) 2011.11.02
애니메이션 효과는 크게 2가지 있다.
1. Tweended animation : 뷰를 회전, 크기변경, 투명조절등의 에니메이션 방법
2. Frame-by-frame-animation :  연속된 이미지를 표시하는 에니메이션 방법

ALPHA = fromAlpha toAlpha – 0에서 1사이의 부동 소수

SCALE = fromXScale/toXScale - 0에서 1사이의 부동 소수

fromYScale/toYScale - 0에서 1사이의 부동 소수

pivotX/pivotY – 그림의 폭/높이는 0%에서 100%사이의 백분율로 나타낸 문자열

TRANSLATE = fromX/fromY - 0에서 1사이의 부동 소수

toX/toY - 0에서 1사이의 부동 소수

ROTATE = fromDegrees/toDegrees – 0에서 360 사이의 부동 소수

AnimationSet은 여러 animation을 쓰고자 할떄 쓴다.

ex)
public static void setLayoutAnim_slidedownfromtop(ViewGroup panel,int a) {

       AnimationSet set = new AnimationSet(true);

       Animation animation = new AlphaAnimation(0.0f, 1.0f);
       animation.setDuration(1000);
       set.addAnimation(animation);
      
       if(a==1){
       animation = new TranslateAnimation(
           Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
           Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0.0f
       );
       }
       else{
        animation = new TranslateAnimation(
                Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
                Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f
            );
       }
       animation.setDuration(1000);
       set.addAnimation(animation);
       /*
       ScaleAnimation scale = new ScaleAnimation(-1, 1, -1, 1,
         ScaleAnimation.RELATIVE_TO_SELF, 1f,
         ScaleAnimation.RELATIVE_TO_SELF, 1f);
       set.addAnimation(scale);
       */
       panel.startAnimation(set);
    }

'IT 공부 > 안드로이드' 카테고리의 다른 글

파서(Get)  (1) 2012.02.25
Activity 화면창  (3) 2011.11.03
화면 변화  (1) 2011.11.02
자유곡선  (2) 2011.11.02
단어 정리  (2) 2011.08.12

+ Recent posts