이삿짐
이사할 때 이사 갈 집으로 옮기는 짐.

이삿짐이 맞는 표준어네요!
Posted by 90002

안드로이드 휴대폰 상에 실제 mm 계산하기(dpi를 mm으로 바꾸기)

 

블로그 초기에 안드로이드에서 쓰이는 길이 단위에 대해서 알아보았습니다.

안드로이드에서 쓰이는 길이 단위(dp,sp,pt,px,mm,in)

 

제가 길이 단위에 대해서 알아본 것은

결과적으로 휴대폰의 클릭하는 지점의 좌표를 mm로 알아내려고 한 것이었습니다.

 

방법은 간단합니다.

 

휴대폰에서는 모든 좌표를 px단위로 받습니다.

그리고 dpi=px/inch이므로,

mm=px*25.4/dpi로 변환이 가능합니다.

 

그러므로, 좌표를 px단위로 입력 받은 뒤에, mm로 변환하면 됩니다.

 

        DisplayMetrics outMetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
        
        xdpi=outMetrics.xdpi;//x방향 dpi
        ydpi=outMetrics.ydpi;//y방향 dpi

 

로 각 방향의 dpi를 받은 뒤,

mm=px*25.4/dpi

식에 대입하여 전환하면 오케이!!

Posted by 90002

다이얼로그 새로 고침. 매번 같은 내용 나올 때

 

커스텀 다이얼로그를 사용하다보면,

안의 내용을 바꿔도 다이얼로그가 변하지 않는 경우가 있습니다.

방법은 간단합니다.

 

 @Override
   protected void onPrepareDialog(int id, Dialog dialog, Bundle args){
    super.onPrepareDialog(id, dialog,args);
     //다이얼로그 불릴때마다 초기화
    removeDialog(id);

  }

 

를 하면 됩니다. 여기서 id는 showDialog(id)에 넣었던 id를 넣으면 됩니다^^

Posted by 90002

커스텀 다이얼로그를 하면 버튼을 눌러도 닫기가 되지 않습니다.

이것을 해결하기 위한 방법으로는 세가지가 있습니다.

 

1. 커스텀 다이얼로그를 Class로 만들어서 사용하기

 

첫번째 방법으로는 커스텀 다이얼로그를 아예 따로 Class를 만들어서 사용하는 방법입니다.

 

//CustomizeDialog.java-텍스트뷰와 Close 버튼만 있습니다.

public class CustomizeDialog extends Dialog implements OnClickListener {
Button close;
TextView tv;
public CustomizeDialog(Context context,String Stringcontent) {
   
super(context);
    requestWindowFeature
(Window.FEATURE_NO_TITLE);     
    setContentView
(R.layout.custom_diolog_main);
    tv
=(TextView) findViewById(R.id.content);
    tv
.setText(Stringcontent);
    close
= (Button) findViewById(R.id.close);
    close
.setOnClickListener(this);
}

@Override
public void onClick(View v) {      
   
if (v == close)
        dismiss
();
}
}

 

부를 때는 다음과 같이 하면 됩니다.

CustomizeDialog customizeDialog = new CustomizeDialog(CustomDialog.this,"clickme");
customizeDialog.show();
출처 :http://stackoverflow.com/questions/8736508/android-close-custom-dialog-within-layout
2. Dialog 클래스를 선언해서 사용하기
개인적으로는 훨씬 쉬운 방법이라고 생각합니다!
AlertDialog.Builder CustomizeDialog = new AlertDialog.Builder(CompareSizeCore.this)
.setView(CustomizeView)
.create();
등과 같이 커스텀 다이얼로그를 선언(?), 변수화?음... 어쨋든 위와 같이 하고,
닫고 싶은 위치에서는
 CustomizeDialog.dismiss(); 
하면 닫을 수 있습니다!!
 
3. dissmissDialog(id) 사용하기
id에는 showDialog(id)에 적었던 id를 적으면 됩니다.
Posted by 90002
인텐트를 다루는 두 번째 시간이 돌아왔습니다. (와우!)
이번 강좌는 저도 인텐트를 쪼~까 공부하느라 뭔가 깔끔하지 못할 지도 모르겠네요(...)
그래도 최대한 자세하게 다뤄보도록 할테니! 걱정은 마시고!! 따라오시면 될겁니다. (아마도요...펑...)

지난 시간에는 다른 액티비티를 단순히 "호출"하는 것만 배웠습니다. 그런데, 실제 어플리케이션을 개발하다보면 액티비티를 호출하는 것은 어찌보면 당연한 것이고, 액티비티간에 데이터를 주고받아야 할 일이 생깁니다. 그럴 땐 어떻게 해야 할까요? => 바로, 이 때도 인텐트를 사용하면 됩니다(...)

인텐트는, 액티비티를 호출하는 수단 뿐 아니라 인텐트 자체에 액티비티간 주고받아야 할 정보들을 실어줄 수 있습니다. 예를 들자면 심부름꾼(???) 이라고 할까나요??

A라는 사람이 B에게 물건을 가져오라고 심부름꾼에게 시키면, 심부름꾼은 B에게 가서 물건을 받아 A에게 전달해주게 됩니다. 마찬가지로, 액티비티 A가 B로부터 어떠한 정보를 받고 싶다면, 인텐트를 사용하여 B를 호출한 다음, 인텐트에 원하는 정보를 실어서 그 정보를 다시 돌려받으면 됩니다.

일단, 호출하는 액티비티 (InformationInput)호출당하는 액티비티(InformationProc)의 코드를 보도록 하겠습니다.


(주의)
액티비티를 추가하는 방법을 모르신다면, 2009/03/01 - [안드로이드/안드로이드 입문] - [강좌] [수정] 이클립스에서 안드로이드 액티비티 추가하기 를 읽고 액티비티 추가 방법에 대해 숙지하신 후 이 강좌를 읽어주세요.


[InformationInput.java]

01.package com.androidhuman.IntentTest;
02.import android.app.Activity;
03.import android.content.Intent;
04.import android.os.Bundle;
05.import android.view.View;
06.import android.widget.Button;
07.import android.widget.TextView;
08.
09.public class InformationInput extends Activity {
10. /** Called when the activity is first created. */
11. @Override public void onCreate(Bundle savedInstanceState) {
12. super.onCreate(savedInstanceState);
13. setContentView(R.layout.main);
14. final Button requestInfo = (Button)findViewById(R.id.requestInfo);
15. requestInfo.setOnClickListener(new Button.OnClickListener(){ // 버튼을 클릭할 경우
16. public void onClick(View v){
17. Intent intent = new Intent(InformationInput.this,InformationProc.class);
18. startActivityForResult(intent, 1); // Sub_Activity 호출
19. }
20. });
21. }
22.
23. @Override
24. protected void onActivityResult(int requestCode, int resultCode, Intent data){
25. super.onActivityResult(requestCode, resultCode, data);
26. TextView name_view = (TextView)findViewById(R.id.name_view);
27. TextView digit_view = (TextView)findViewById(R.id.digit_view);
28. if(resultCode==RESULT_OK) // 액티비티가 정상적으로 종료되었을 경우
29. {
30. if(requestCode==1) // InformationInput에서 호출한 경우에만 처리합니다.
31. { // 받아온 이름과 전화번호를 InformationInput 액티비티에 표시합니다.
32. name_view.setText(data.getStringExtra("data_name"));
33. digit_view.setText(data.getStringExtra("data_digit"));
34. }
35. }
36. }
37. }


[main.xml]
01.<?xml version="1.0" encoding="utf-8"?>
02.<LinearLayout
03.android:layout_height="fill_parent"
04.android:layout_width="fill_parent"
05.android:orientation="vertical"
07.<TextView android:layout_height="wrap_content"
08.android:layout_width="fill_parent"
09.android:text="@string/name" />
10.<TextView android:layout_height="wrap_content"
11. android:layout_width="fill_parent"
12. android:text="-이름이 입력되지 않음-"
13. android:id="@+id/name_view"/>
14.
15.<TextView android:layout_height="wrap_content"
16. android:layout_width="fill_parent"
17. android:text="@string/digit"/>
18.
19.<TextView android:layout_height="wrap_content"
20. android:layout_width="fill_parent"
21. android:text="-전화번호가 입력되지 않음-"
22. android:id="@+id/digit_view"/>
23.
24.<Button android:layout_height="wrap_content"
25. android:layout_width="wrap_content"
26. android:text="@string/button_launch"
27. android:id="@+id/requestInfo"
28. android:layout_gravity="center_horizontal"/>
29.</LinearLayout>



[InformationProc.java]

01.package com.androidhuman.IntentTest;
02.import android.app.Activity;
03.import android.content.Intent;
04.import android.os.Bundle;
05.import android.view.View;
06.import android.view.View.OnClickListener;
07.import android.widget.Button;
08.import android.widget.EditText;
09.public class InformationProc extends Activity {
10. /** Called when the activity is first created. */
11. @Override public void onCreate(Bundle savedInstanceState) {
12. super.onCreate(savedInstanceState);
13. setContentView(R.layout.informationproc);
14. Button input_info = (Button)findViewById(R.id.inputinfo);
15. input_info.setOnClickListener(new OnClickListener(){
16.
17. public void onClick(View v) { //버튼을 클릭하면
18. Intent intent = getIntent(); // 이 액티비티를 시작하게 한 인텐트를 호출
19. EditText name_input = (EditText)findViewById(R.id.name_input);
20. EditText digit_input = (EditText)findViewById(R.id.digit_input);
21. intent.putExtra("data_name",name_input.getText().toString());
22. intent.putExtra("data_digit", digit_input.getText().toString());
23. setResult(RESULT_OK,intent); // 추가 정보를 넣은 후 다시 인텐트를 반환합니다.
24. finish(); // 액티비티 종료
25. }
26. });
27. }



[informationproc.xml]




01.<?xml version="1.0" encoding="UTF-8"?>
02.<LinearLayout
03. android:layout_height="wrap_content"
04. android:layout_width="fill_parent"
05. android:orientation="vertical"
07. android:id="@+id/overview_layout">
08.
09.<TextView android:layout_height="wrap_content"
10. android:layout_width="wrap_content"
11. android:text="@string/text_information"/>
12.
13.<LinearLayout android:layout_height="wrap_content"
14. android:layout_width="fill_parent"
15. android:orientation="horizontal"
16. android:id="@+id/name_layout">
17.
18.<TextView android:layout_height="wrap_content"
19. android:layout_width="wrap_content"
20. android:text="@string/name"/>
21.
22.<EditText android:layout_height="wrap_content"
23. android:layout_width="fill_parent"
24. android:id="@+id/name_input"
25. android:hint="ex)안드로이드"/>
26.</LinearLayout>
27.
28.<LinearLayout android:layout_height="wrap_content"
29. android:layout_width="fill_parent"
30. android:orientation="horizontal"
31. android:id="@+id/digit_layout">
32.
33.<TextView android:layout_height="wrap_content"
34. android:layout_width="wrap_content"
35. android:text="@string/digit"/>
36.
37.<EditText android:layout_height="wrap_content"
38. android:layout_width="fill_parent"
39. android:id="@+id/digit_input"
40. android:hint="ex)011-123-4567"/>
41.
42.</LinearLayout>
43.
44.<Button android:layout_height="wrap_content"
45. android:layout_width="wrap_content"
46. android:text="@string/input"
47. android:id="@+id/inputinfo"
48. android:layout_gravity="center_horizontal"/>
49.</LinearLayout>


단순히 액티비티를 호출할 때에는 startActivity(Intent)를 사용했었지만, 액티비티를 호출한 후 결과값을 받기 위해서는 다른 메소드를 사용해야 합니다. 바로 startActivityForResult(Intent intent, int requestCode)입니다.


public void startActivityForResult(Intent intent, int requestCode)
호출당하는 액티비티로부터 데이터를 넘겨받기 위해 사용합니다.
intent - 인텐트
requestCode - 이 액티비티를 호출하는 액티비티가 여러 개가 있을 경우, 어떤 액티비티가 호출했는지를 알기 위해 사용


requestCode는 별로 특이한 것은 아니고, 한 액티비티를 여러 액티비티가 호출해야 할 경우, 호출이 어디에서 일어났는지를 알려주는 인자값입니다.
일단, InformationInput 액티비티를 봅시다. 버튼을 클릭하면 InformationInput 액티비티가 InformationProc 액티비티를 호출해야 하므로, 일단 intent를 생성하고, startActivityForResult()를 통해 InformationProc 액티비티를 실행시킵니다.



InformationProc 액티비티가 실행되면, 사용자로부터 이름과 전화번호를 입력받게 됩니다.
입력이 끝나고, 입력 버튼을 누르면, 입력받은 데이터를 인텐트에 집어넣게 됩니다.
1.Intent intent = getIntent(); // 이 액티비티를 시작하게 한 인텐트를 호출
2. EditText name_input = (EditText)findViewById(R.id.name_input);
3. EditText digit_input = (EditText)findViewById(R.id.digit_input);
4. intent.putExtra("data_name",name_input.getText().toString());
5. intent.putExtra("data_digit", digit_input.getText().toString());
6. setResult(RESULT_OK,intent); // 추가 정보를 넣은 후 다시 인텐트를 반환합니다.
7.finish(); // 액티비티 종료

차근차근 하나씩 보도록 하겠습니다.
일단, 첫번째, 인텐트를 생성하는 것을 볼 수 있습니다. 보통, 인텐트를 생성할 때 new 생성자를 써서 인텐트를 생성했던 것에 반해, 여기에서는 getIntent()를 사용하여 인텐트를 불러오고 있습니다. getIntent()메소드는 현재 자신을 호출했던 인텐트를 반환해줍니다.

여기서, 자신을 호출한 인텐트를 받아오는 것은, 아까 예로 들었던 심부를꾼을 생각해보면 쉽게 이해할 수 있습니다. A라는 심부름꾼에게서 물건을 받았는데, B라는 심부름꾼에게 물건을 주면 안되겠죠? 인텐트도 마찬가지입니다. :)

이렇게 해서 인텐트를 생성하면, 이제 EditText로부터 입력한 값들을 받아와야 합니다. findViewById()를 이용하여 레이아웃 객체와 코드상의 객체를 연결한 후, putExtra()메소드를 이용해 정보를 실어줍니다.

intent.putExtra(String name, _value)
name이라는 이름을 가지는 데이터를 인텐트에 첨가합니다.

인텐트에 들어가는 데이터는 "키"의 역할을 하는 name과 그에 해당하는 값인 _value가 짝을 이루어 저장됩니다.
이렇게 저장이 되었다면, 호출된 액티비티가 정상적으로 끝났는지, 비정상적으로 끝났는지 (물건을 제데로 받았는지, 심부름꾼이 왔는지 등등...으로 비유할 수 있겠습니다) 자신을 호출한 액티비티에게 알려주기도 해야 하고, 요청한 데이터도 같이 주어야 합니다.

일단, 호출당한 액티비티가 정상적으로 끝났음을 알리기 위해, setResult(RESULT_OK, intent) 메소드를 사용합니다. RESULT_OK로 액티비티가 정상적으로 끝났음을 전달하게 됩니다. RESULT_OK를 반환하지 않고 중간에 비정상적으로 종료되었다면 저 코드를 반환받지 못하므로 뭔가 문제가 있구나 알게 되겠죠? 제데로 종료가 된다면, 아까 우리가 추가로 입력한 데이터를 담은 인텐트도 함께 반환하게 됩니다.

이렇게.. 여기까지 정상적으로 돌아간 후, 호출당한 액티비티(InformationProc)가 finish()메소드에 의해 종료되게 되면, OnActivityResult() 메소드가 호출되게 됩니다. 결과를 기다리고 액티비티를 호출했으니, 액티비티가 종료되었으니 그 결과를 확인해야겠죠??


void onActivityResult(int requestCode, int resultCode, Intent data)
startActivityForResult로 호출한 액티비티가 종료되었을 때 호출됩니다.



01.protected void onActivityResult(int requestCode, int resultCode, Intent data)
02.{ super.onActivityResult(requestCode, resultCode, data);
03. TextView name_view = (TextView)findViewById(R.id.name_view);
04. TextView digit_view = (TextView)findViewById(R.id.digit_view);
05. if(resultCode==RESULT_OK) // 액티비티가 정상적으로 종료되었을 경우
06. {
07. if(requestCode==1) // InformationInput에서 호출한 경우에만 처리합니다.
08. {
09. // 받아온 이름과 전화번호를 InformationInput 액티비티에 표시합니다.
10. name_view.setText(data.getStringExtra("data_name"));
11. digit_view.setText(data.getStringExtra("data_digit"));
12. }
13. }
14. }


위의 onActivityResult에서, requestCode가 아까 setResult()에서 액티비티가 정상 종료되었는지를 판단하는 인자값, RESULT_OK를 받게 됩니다. 그래서, 이걸 가지고 적절히 예외 처리를 해 줄 수 있는 거죠.
requestCode는 아까 startActivityForResult()를 호출할 때, InformationInput이 호출한 것임을 표시하기 위해 '1'으로 설정하였으므로, 여기에서 또한 그 코드를 맞춰주어야 제데로 결과값을 받을 수 있습니다.

즉, 정상적으로 액티비티가 종료되었다면 requestCode의 값은 RESULT_OK, resultCode는 1이 됩니다.

이렇게 해서, 모두 정상이라면 인텐트에서 받아온 데이터를 꺼내 화면에 표시합니다.

putExtra() 메소드가 어떤 타입이든 상관없었던 것에 비해, 불러올 때에는 getStringExtra()메소드를 사용하여 문자열 값을 불러오면 됩니다. getStringExtra()뿐 아니라 getIntExtra(), getBooleanExtra() 등 여러 가지가 있으므로 상황에 맞추어 사용하면 됩니다.

이렇게 해서, 화면에 표시되는 TextView의 텍스트 값들이 아까 호출한 액티비티의 값들로 바뀌게 됩니다. :)


이렇게 해서, 인텐트를 통해 액티비티간에 데이터를 주고받는 것에 대해서 알아보았습니다. 이번 강좌는 다른 강좌들과는 다르게 세세한 부분에 대한 설명은 대부분 생략하였습니다. 이 강좌쯤을 보시는 분들은 어느 정도 기초가 되어 있으리라 믿기에, 일부러 안 적었습니다. 게다가 그걸 다 적으면 강좌가 한도끝도 없이 길어지기만 하죠 -_-

현재, 이 코드는 모든 문자열 값을 strings.xml에 넣어서 그 쪽에 있는 값들을 참조하는 형식으로 구성되어있습니다. 이 부분에 대해 궁금하신 분은 제가 2009/03/14 - [안드로이드/안드로이드 입문] - [강좌] 외부 리소스 사용하기 (문자열) 에 정리해놓았으니, 이걸 보시면 되겠습니다. :)

 

 

출처:http://androidhuman.tistory.com/125

Posted by 90002

가끔씩 마주치게 되는 "OutOfMemoryError : bitmap size exceeds VM budget" 에러는 메모리 누수가 주요 원인입니다. 이와 관련된 링크를 모아봤습니다.


* 액티비티가 멈출 때 비트맵을 재활용(즉 GC)되게 하라

- bitmap 이미지인 경우 recycle() 호출
- onPause에서 수행하는게 좋음
- ((BitmapDrawable)imageView.getDrawable()).getBitmap().recycle();

* 이미지를 미리 줄여서 읽어들여라

- BitmapFactory.Options.inSampleSize 활용

* Activity Context에 대한 참조(reference)를 오랫동안 유지하지 말아라

- Drawable.setCallback(null) 사용
- WeakReference를 가진 static 내부 클래스
- 이미지를 static 변수로 처리하지 마라

* 외부(outer) 클래스의 상태에 의존하지 않는 내부(inner) 클래스는 static으로 선언하라
- 내부클래스는 외부 클래스 인스턴스를 크게 만들며 또한 외부클래스 객체가 필요이상으로 오래 살아있게 되어 메모리를 더 차지할 수 있음
- 외부클래스의 상태 필드에 접근하지 않는(즉 외부 객체의 상태에 의존하지 않는) 내부클래스는 static으로 선언

* Attacking memory problems on Android
Posted by 90002

안드로이드 Paint


Paint 상속 계층도

java.lang.Object

└─ android.graphics.Paint


Paint의 하위 클래스들

TextPaint


Paint 은 머야?

그리기(Draw)하기위해 쓰여지는 도구 라고 생각하시면 됩니다.

쉽게 말해 Canvas가 도화지라면 Paint는 붓이라고 생각하시면 좋을듯 합니다.

도화지에 그림을 그릴때 우리들은 여러가지 붓을 사용하여 효과를 줍니다.

붓을 굵기, 색상, 모양등을 선택해서 원하는 형태로 그릴수 있는 것이죠.


Paint 에서 사용되는 메소드

  1. set(Paint src)

    - 매개변수로 받은 Paint로 설정합니다.


    setARGB(int a, int r, int g, int b)

    - Paint의 투명도 및 색상을 설정 합니다.


    setAlpha(int a)

    - Paint의 투명도 설정을 합니다.


    setAntiAlias(boolean aa)

    - Paint의 경계면을 부드럽게 처리할지 설정합니다.


    setColor(int color)

    - Paint의 색상 설정 합니다.


    setStrokeCap(Paint.Cap cap) - 선의 끝나는 지점의 장식을 설정합니다.

    BUTT : 그 정해진 위치에서 끝납니다.

    ROUND : 둥근 모양으로 끝이 장식됩니다.

    SQUARE : 사각형 모양이며, 해당 좌표보다 조금더 길게 그려 집니다.

    setStrokeJoin(Paint.Join join) - 선의 끝 모양을 설정합니다.

    MITER : 모서리를 각진 모양으로 만듭니다.

    BEVEL : 모서리가 둥글게 살짝 깍인 모양으로 만듭니다.

    ROUND : 모서리를 둥근 모양으로 만듭니다.

    setStrokeMiter(float miter)

    - 0 이상의 값을 설정, 뽀족한 정도를 설정(각도단위)


    setStrokeWidth(float width)

    - Paint의 굵기를 설정 합니다.


    setStyle(Paint.Style style) - Paint 스타일을 설정 합니다.

    FILL : 색상이 채워지고 테두리는 그려지지 않습니다.

    FILL_AND_STROKE : 채우기와 테두리가 모두 그려집니다

    STROKE : 채우기 없이 테두리만 그려집니다.


    setTextAlign(Paint.Align align)

    - 해당 Paint의 글자 정렬을 설정 합니다.


    setTextScaleX(float scaleX)

    - 텍스트페인트의 수평scale factor 를 설정합니다.


    setTextSize(float textSize)

    - Paint의 글자 크기를 설정합니다.


    setTextSkewX(float skewX)

    - Paint의 수평으로 기울어진 정도를 설정합니다.


    setTypeface(Typeface typeface)

    - Paint의 글꼴을 설정 합니다.


    setUnderlineText(boolean underlineText)

    - Paint의 글자에 밑줄 설정을 합니다.


    setColorFilter(ColorFilter filter)

    - RGB를 이용하여 paint에 변화를 줍니다. 이것은 Alpha를 무시 합니다.

    setMaskFilter(MaskFilter maskfilter)

    - 모서리에 알파채널을 이용하여 효과를 설정합니다.


    setPathEffect(PathEffect effect)

    - 그리는 방법을 제어 합니다.(도형의 모서리, 윤곽선등)


    setShader(Shader shader)

    - 솔리드에 색상을 설정해 줍니다. 그라디언트등


    setXfermode(Xfermode xfermode)

    - 이미 그려진 곳에 새로 그리는 기법입니다.

 

 

출처:http://jwandroid.tistory.com/182#recentTrackback 


Posted by 90002

오랜만에 신촌에 나와서

시간이 남아서 탐앤탐스에 들렀는데,

왜 콘센트가 없는건가.

멀티탭을 달라고 해도, 매장에서는 멀티탭을 제공하지 않는단다.

 

4층까지 세워져있는 탐앤탐스인데,

각 층에 콘센트가 약 4구 밖에 없다.ㅜㅜ

 

까페 회전율을 높이기 위한 탐앤탐스의 전략인가...

'요즘 생각들' 카테고리의 다른 글

신촌 탐앤탐스. 왜 콘센트가 없는건가.  (0) 2013.02.23
Posted by 90002

srt 자막 파일을 실행시키려고 하면 에러가 나거나

아무것도 뜨지 않을 때가 있습니다.

 

그것은 srt파일이 DVD 전용 파일이라서 그런 건데요,

 

아래의 프로그램을 이용해서 smi 파일로 변환하면 바로 자막이 실행 됩니다 :)

 

사용법은 아래의 프로그램을 다운로드 하신 후,

 

setup을 눌러서 설치를 하고,

 

실행을 해서 해당 srt 파일을 추가한 뒤, Run을 누르면 srt 파일이 있는 폴더에 smi 파일이 생성되게 됩니다^^

UzysSRTSMI_ConverterV0.1.7_setup.zip

 

Posted by 90002

다음뷰 트랙백 주소

[라이프 채널]
일상다반사 :
http://v.daum.net/tb/ch/lifestory
취미 : http://v.daum.net/tb/ch/hobby
요리 : http://v.daum.net/tb/ch/recipe
맛집 :
http://v.daum.net/tb/ch/restaurant
여행 : http://v.daum.net/tb/ch/travel
연애 : http://v.daum.net/tb/ch/love
패션뷰티 : http://v.daum.net/tb/ch/fashion
건강 : http://v.daum.net/tb/ch/health
육아 : http://v.daum.net/tb/ch/childcare
반려동물 : http://v.daum.net/tb/ch/pet
군대 : http://v.daum.net/tb/ch/army
해외생활 : http://v.daum.net/tb/ch/global
재미 : http://v.daum.net/tb/ch/humor
DIY :
http://v.daum.net/tb/ch/diy

[문화연예 채널]
TV :
http://v.daum.net/tb/ch/tv
스타 : http://v.daum.net/tb/ch/star
영화 : http://v.daum.net/tb/ch/movie
음악 : http://v.daum.net/tb/ch/music
책 : http://v.daum.net/tb/ch/book
만화 : http://v.daum.net/tb/ch/ani
공연전시 : http://v.daum.net/tb/ch/theater
창작 : http://v.daum.net/tb/ch/series
문화 : http://v.daum.net/tb/ch/culture

[IT과학 채널]
IT :
http://v.daum.net/tb/ch/it
과학 : http://v.daum.net/tb/ch/science
게임 : http://v.daum.net/tb/ch/game
인터넷 : http://v.daum.net/tb/ch/internet
카메라 : http://v.daum.net/tb/ch/camera
모바일 : http://v.daum.net/tb/ch/mobile

[스포츠 채널]
축구 :
http://v.daum.net/tb/ch/soccer
해외축구 : http://v.daum.net/tb/ch/worldsoccer
야구 : http://v.daum.net/tb/ch/baseball
해외야구 : http://v.daum.net/tb/ch/worldbaseball
농구 : http://v.daum.net/tb/ch/basketball
배구 : http://v.daum.net/tb/ch/vollyball
골프 : http://v.daum.net/tb/ch/golf
스포츠일반 : http://v.daum.net/tb/ch/sportsgeneral

[경제 채널]
생활경제 :
http://v.daum.net/tb/ch/money
주식펀드 : http://v.daum.net/tb/ch/stock
부동산 : http://v.daum.net/tb/ch/estate
자동차 : http://v.daum.net/tb/ch/car
비즈니스 :
http://v.daum.net/tb/ch/business
취업직장 : http://v.daum.net/tb/ch/job

[시사 채널]
사회 :
http://v.daum.net/tb/ch/society
정치 : http://v.daum.net/tb/ch/politics
국제 : http://v.daum.net/tb/ch/world
미디어 : http://v.daum.net/tb/ch/media
교육 : http://v.daum.net/tb/ch/education

Posted by 90002
이전버튼 1 2 3 이전버튼

블로그 이미지
90002

공지사항

Yesterday2
Today5
Total125,405

최근에 달린 댓글

최근에 받은 트랙백

글 보관함