Android - Networking

이미지
이 글에서는 안드로이드의 Networking 실습을 한 내용을 다룬다. 소켓 프로그래밍 소켓을 이용하여 안드로이드 앱과 통신을 주고받는 모습. 기본적으로 안드로이드에서는 TCP/IP방식의 소켓을 사용하여 통신을 한다. 이 소켓을 사용하기 위해 서버와 클라이언트의 개발이 필요하다. 실시간으로 처리해야하는 데이터가 있다면, HTTP보다 소켓 통신이 우월하다. 안드로이드에서 소켓을 이용할때는 표준 자바 소켓을 그대로 사용가능하다. 서버에는 아래처럼 서버 포트를 이용한 소켓을 만들어 둔다. int  SERVER_PORT  =   200 ; ServerSocket server  =   new  ServerSocket(SERVER_PORT); System . out . println ( "Server]서버가 실행됨.  포트 : "   +  SERVER_PORT); cs 클라이언트에서는 서버 소켓으로 연결하기 위해 서버 IP와 포트를 사용한 소켓을 만든다. String  SERVER_IP  =   "localhost" ; int  SERVER_PORT  =   200 ; Socket aSocket  =   new  Socket(SERVER_IP, SERVER_PORT); System . out . println ( "Client] 서버 접속" ); cs 위처럼 기본적인 소켓 설정을 한 이후에는 InputStream/OutputStream을 이용해 통신하면 된다. 웹페이지 요청 HttpURLConnection을 이용하여 구글 홈페이지의 html문서를 텍스트 형태로 받은 모습. 안드로이드에서는 URL Class를 통해 U...

HW #11 - 오늘의 메뉴

이미지
'오늘의 메뉴'는 포크모양 이미지를 클릭하면, 위쪽에서 설정한 이미지 변경 간격마다 메뉴를 바꾸면서 보여주게 된다. 원하는 이미지를 클릭하면, 화면전환이 멈추고 어떤 메뉴를 선택했는지 보이게 된다. 아무때나 처음으로 버튼을 누르면 맨 처음 화면으로 돌아간다. Source : M.java,  Main2Activity.java Layout : activity_m.xml, activity_main2.xml Source Code :  https://github.com/SBSide/Multi

HW #10 - My Canvas(단순한 그림판)

이미지
Source : MainActivity.java MyCanvas.java (Custom View) Layout :  activity_main2.xml My Canvas는 펜으로 단순한 그림을 그리거나 이미지스탬프를 그릴 수 있는 어플리케이션이다. 기본적으로 흰 배경이며, 메뉴는 오른쪽처럼 구성되어있다. Blurring - 스탬프를 뿌옇게 한다. 체크는 켜고 끌 수 있음. Coloring - 스탬프의 밝기를 올린다. 체크는 켜고 끌 수 있음. Pen Width Big - 펜의 두께를 올린다. 체크는 켜고 끌 수 있음. Pen Color ~~~ - 펜의 색을 고른다. Save를 눌러 저장이 가능하며, Open을 누르면 마지막으로 저장했던 이미지를 불러온다. Erase를 누르면 화면을 지우고 흰 배경으로 만든다. Stamp에 체크하면 스탬프찍기모드가 된다. 화면 아래 바에 있는 버튼들은 스탬프의 모양을 결정한다.  누르는 동시에 Stamp가 자동으로 체크된다. Source Code :  https://github.com/SBSide/MAD10

HW #9 - 메모장

이미지
Source : Main2Activity.java Layout :  activity_main2.xml 메모장은 사용자가 설정한 날짜 이름으로 메모를 생성하는 어플리케이션이다. 목록에서 메모를 선택하면 메모의 수정이 가능하다. 항목을 길게 누르면 삭제가 가능하다. Source Code :  https://github.com/SBSide/MAD9

Android - Toast, 대화상자

이미지
이 글에서는 Toast, 대화상자, 그리고 Fragment에 대해 적겠다. Toast Toast는 앱 내에서 구름같은 메시지를 표시하는 위젯이다. Toast - 기본형 메시지를 띄우기 위해, onCreate() 내에 다음 코드를 넣고 실행하면 "문장 출력"이란 Toast메시지가 아래쪽에 잠시 나타났다가 사라질 것이다. Toast. makeText (getApplicationContext() , "문장 출력" , Toast. LENGTH_SHORT ).show() ; 이때 쓰이는 함수는 Toast의 maketext()이다. maketext(Context context, CharSequence text, int duration) Context context : context를 설정한다. onCreate() 함수 내에서는 getApplicationContext ()  , 같은 Activity내에서는   this , Fragment에서는   getActivity ()  를 지정한다. CharSequence text : 보여줄 메시지를 설정한다. String형태로 넣어주면 된다. int duration : 메시지를 보여줄 시간길이를 설정한다. Toast . LENGTH_SHORT  혹은   Toast . LENGTH_LONG  을 넣을 수 있다. 아래는 개인적으로 응용한 예제이다. Listview에서 리스트 아이템을 클릭하면 "빈 테이블입니다"라는 문장이 뜨게 하는 액티비티의 일부이다. listview .setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick (AdapterView parent , View view , int position , long id) { Toast. makeText (getActiv...

HW #8 - 웹 뷰어

이미지
Source : Main2Activity.java Layout :  activity_main.xml Assets : urladd.html (즐겨찾기 추가용 html페이지) Anim : translate_top.xml (주소바를 감추는 Animation) 메뉴의 즐겨찾기 추가를 누르면 나오는 화면이다.  html 파일에서 javascript를 이용하여 사이트명과 주소를 받아온 후,  '즐겨찾기 추가'버튼을 누르면 ListView에 추가한다. 동일한 사이트(url기준)가 ListView에 있다면, '동일한 사이트가 등록되어 있습니다.' 메시지를 아래 표시하고 url란을 비운다. 즐겨찾기 목록을 누르면 나오는 ListView. 항목을 클릭하면 해당 사이트로 이동한다. 항목을 길게 누르면 삭제 창을 띄운다. 사이트를 불러오는 중에는 '로드 중'이라는 화면을 표시한다. Source Code : https://github.com/SBSide/MAD8

HW #7 - 과일가게 어플리케이션

이미지
Source : Main2Activity.java Fruit.java (Data class) /  AddFruit.java  (Custom Widget class) GridAdapter.java (Custom Adapter) /  GridItem.java (Custom Widget class) Layout : activity_main2.xml gray.xml (GridView에 표시되는 Custom Widget) fruitadd.xml (과일 추가 메뉴용  Custom Widget) 과일가게 어플리케이션은 가게에 존재하는 과일의 이미지와 이름을 GridView로 보여준다. 과일 이미지는 이미 정해진 리스트를 Fruit 데이터클래스 내에 정의해 놓고,  이를 다른 클래스에서 불러내어 표시한다. 과일이름, 가격입력은 각각이 힌트로 표시된  EditText에서 정보를 입력받는다. 과일이미지 옆의 Button을 누르면 과일이미지를 선택할수있다. ADD를 누르면 추가된다. 항목 하나를 선택하면 그 정보를 가져와서 아래 메뉴에 표시한다. 원하는대로 정보를 변경하고, M을 누르면 정보가 수정된다. Source code : https://github.com/SBSide/MAD7