Microsoft PowerPoint - BIT-android pptx

Size: px
Start display at page:

Download "Microsoft PowerPoint - BIT-android pptx"

Transcription

1 Android (2/3) Kook, Joongjin Operating Systems Lab. Soongsil University

2 AlertDialog AlertDialog 실행결과 142

3 ProgressDialog ProgressDialog ProgressBar 를함께표현한 dialog ProgressDialog 객체생성후 title, message, progressstyle 등을지정하여 dialog 생성 gressdialog.html Progress Style int STYLE_HORIZONTAL Creates a ProgressDialog with a horizontal progress bar. int STYLE_SPINNER Creates a ProgressDialog with a ciruclar, spinning progr ess bar. 143

4 ProgressDialog ProgressDialog Methods int int getmax() getprogress() int getsecondaryprogress() og ess() void void boolean void void incrementprogressby(int diff) incrementsecondaryprogressby(int diff) isindeterminate() onstart() Called when the dialog is starting. setindeterminate(boolean indeterminate) void setindeterminatedrawable(drawable d) void void void setmax(int max) setmessage(charsequence message) setprogress(int value) void setprogressdrawable(drawable d) void void setprogressstyle(int style) setsecondaryprogress(int secondaryprogress) static ProgressDialog show(context context, CharSequence title, CharSequence message) 144

5 ProgressDialog ProgressDialog Exam1 mprogdlg = new ProgressDialog(this); mprogdlg.seticon(r.drawable.icon); mprogdlg.settitle(r.string.progress_title); mprogdlg.setprogressstyle(progressdialog.style_horizontal); mprogdlg.setmax(100); mprogdlg.setbutton(gettext(r.string.hide), new DialogInterface.OnClickListener() { }); public void onclick(dialoginterface dialog, int which) {} mprogdlg.setbutton2(gettext(r.string.cancel), new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int whichbutton) {} }); mprogdlg.show(); 145

6 ProgressDialog ProgressDialog 실행결과 146

7 ProgressDialog ProgressDialog Exam2 mproghandler = new Handler() { public void handlemessage(message msg) { super.handlemessage(msg); if (mprogress >= 100) { mprogdlg.dismiss(); } else { }; } } mprogress++; mprogdlg.incrementprogressby(1); mproghandler.sendemptymessagedelayed(0, 100); mproghandler.post(null); 147

8 ProgressDialog ProgressDialog 실행결과 148

9 ProgressDialog ProgressDialog Exam3 mprogdlg = new ProgressDialog(this); mprogdlg.seticon(r.drawable.icon); mprogdlg.settitle(r.string.progress_title); mprogdlg.setprogressstyle(progressdialog.style_spinner); mprogdlg.setmax(100); mprogdlg.setbutton(gettext(r.string.hide), new DialogInterface.OnClickListener() { }); public void onclick(dialoginterface dialog, int which) {} mprogdlg.setbutton2(gettext(r.string.cancel), new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int whichbutton) {} }); mprogdlg.show(); 149

10 ProgressDialog ProgressDialog 실행결과 150

11 Toast Toast Methods void int int View static Toast static Toast void void void void cancel() getduration() getgravity() getview() maketext(context context, int resid, int duration) maketext(context context, CharSequence text, int duration) setduration(int duration) setgravity(int gravity, int xoffset, int yoffset) setmargin(float horizontalmargin, float verticalmargin) settext(int resid) void settext(charsequence s) void void setview(view view) show() 151

12 Toast Toast Exam Context context = this; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, R.string.hello, duration); toast.show(); int LENGTH_LONG Show the view or text notification for a long period of time. int LENGTH_SHORT Show the view or text notification for a short period of time. 152

13 Toast Toast 실행결과 153

14 Button Buttons Button 일반적인버튼의동작수행 ImageButton 이미지를올릴수있는버튼 ToggleButton on/off 상태표시 RadioButton 여러옵션들중한개선택 CheckBox 여러옵션들중여러개선택 Spinner 여러옵션들을리스트형식으로보여주고선택 154

15 Button 기본 button 의동작 public class MyActivity extends Activity { protected void oncreate(bundle icicle) { super.oncreate(icicle); setcontentview(r.layout.content_layout_id); final Button button = (Button) findviewbyid(r.id.button_id); } } button.setonclicklistener(new View.OnClickListener() { }); public void onclick(view v) { // Perform action on click } 155

16 Button Button 생성및클릭이벤트처리 public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.buttons); mbtn_common = (Button)findViewById(R.id.btn_common); mbtn_common.settext(r.string.button_title); mbtn_common.settextcolor(0xffffff00); mbtn_common.setpadding(2, 2, 2, 2); mbtn_common.setfocusable(true); } mbtn_common.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { Dialog d = new Dialog(ButtonExam.this); d.settitle("button Clicked"); d.show(); } }); 156

17 Button 버튼결과 157

18 ImageButton ImageButton public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.buttons); } mbtn_image = (ImageButton)findViewById(R.id.btn_image); mbtn_image.setimageresource(r.drawable.img_button_1); mbtn_image.setpadding(5, 5, 5, 5); mbtn_image.setfocusable(true); 158

19 ImageButton ImageButton - xml <ImageButton android:id="@+id/btn_image" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/button_title" > </ImageButton> 159

20 ImageButton ImageButton 결과 160

21 CheckBox CheckBox mbtn_check1 = (CheckBox)findViewById(R.id.plain_cb); mbtn_check2 = (CheckBox)findViewById(R.id.serif_cb); mbtn_check3 = (CheckBox)findViewById(R.id.bold_cb); mbtn_check4 = (CheckBox)findViewById(R.id.italic_cb); mbtn_check1.settext(r.string.check1); mbtn_check2.settext(r.string.check2); h k2) mbtn_check3.settext(r.string.check3); mbtn_check4.settext(r.string.check4); mbtn_check1.setchecked(false); mbtn_check2.setchecked(true); 161

22 CheckBox CheckBox - xml <CheckBox android:id="@+id/plain_cb" android:text="plain" android:layout_width="wrap_content" android:layout_height="wrap_content /> <CheckBox android:id="@+id/serif_cb" android:text="serif" android:layout_width="wrap_content" android:layout_height="wrap_content" android:typeface="serif /> <CheckBox android:id="@+id/bold_cb" android:text="bold" t android:layout_width="wrap_content" android:layout_height="wrap_content" android:textstyle="bold /> <CheckBox android:id ="@+id/italic_cb" android:text="italic" android:layout_width="wrap_content" android:layout_height= height="wrap_content" android:textstyle="italic /> 162

23 CheckBox CheckBox 결과 163

24 RadioButton RadioButton mbtn_radio1 = (RadioButton)findViewById(R.id.radio2); mbtn_radio2 = (RadioButton)findViewById(R.id.radio3); mbtn_radio3 = (RadioButton)findViewById(R.id.radio4); mbtn_radio1.settext(r.string.radio1); mbtn_radio2.settext(r.string.radio2); mbtn_radio3.settext(r.string.radio3); tt t(r t i 3) 164

25 RadioButton RadioButton - xml <RadioGroup android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:android=" android:orientation="vertical" > <RadioButton android:id="@+id/radio2" id/ di android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="plain" android:checked="false" android:layout_gravity="left" android:layout_weight="0" > </RadioButton> </RadioGroup> 165

26 RadioButton RadioButton 결과 166

27 Spinner Spinner spinner = (Spinner)findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets, android.r.layout.simple_spinner_item); spinner.setadapter(adapter); setadapter(adapter); 167

28 Spinner Spinner - xml <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawselectorontop="true" android:prompt="@string/planet_prompt" /> 168

29 Spinner Spinner 실행결과 169

30 Visual Tools Visual Tools <AnalogClock android:layout_width="wrap_content" android:layout_height="wrap_content /> <DatePicker android:layout_width="wrap_content" android:layout_height="wrap_content i h " /> <DigitalClock android:id="@+id/digitalclock" android:layout_width= width="wrap_content" android:layout_height="wrap_content /> <TimePicker android:id="@+id/widget3" android:layout_width="wrap_content" android:layout_height="wrap_content /> 170

31 Visual Tools Visual Tools 실행결과 171

32 화면구성요소 Activity에 View와 ViewGroup 클래스를사용하여화면표시 View 클래스 직사각형형태의레이아웃과각종정보를저장하는자료구조 화면의크기조절, 레이아웃구성, 그리기, 포커스변화, 스크롤링, 키처리등을위해사용 위젯 (widget) 의베이스클래스 ViewGroup 클래스 다중 view ViewGroup은 View 안에또다른View를가질수있는중첩구조허용 172

33 화면구성요소 Android는 Activity의 UI를 View와 ViewGroup의트리구조를이용하여구성 ViewGroup ViewGroup View View View View View 173

34 화면구성요소 LayoutParams View 객체들을어떻게그려야하는지에대한정보를부모객체에게알려줌 WRAP_CONTENT: 콘텐츠를표시하는데필요한최소한의크기로그린다 FILL_PARENT: 부모객체와의패딩 ( 여백 ) 을제외한나머지모든공간을차지 FILL_PARENT 적용 WRAP_CONTENT 적용 174

35 화면구성요소 LayoutParams LinearLayout LinearLayout View View View View RelativeLayout RelativeLayout LinearLayout LinearLayout. LayoutParams LayoutParams LinearLayout LinearLayout. LayoutParams LayoutParams LinearLayout LinearLayout. LayoutParams LayoutParams Vi Vi Vi Vi Vi Vi View View View View View View Relative RelativeLayout Layout. LayoutParams LayoutParams Relative RelativeLayout Layout. LayoutParams LayoutParams Relative RelativeLayout Layout. LayoutParams LayoutParams 175

36 Layout FrameLayout 단순히비어있는공간 모든객체들이화면의왼쪽위를기준으로그려짐 프로그래머가직접그리고싶은객체의기준점설정불가 LinearLayout 모든하위구성요소를수직또는수평형태중하나로정렬하여그리는방식 하위구성요소들간의 margin 과정렬방식 (gravity) 지정가능 구성요소별가중치 (android:layout_weight) 지정가능 화면에남는공간을어떻게활용할지결정 176

37 Layout 가중치미적용 177

38 Layout 가중치적용 178

39 Layout TableLayout 테이블의행과열을기준으로하위구성요소들배치 TableLayout 은행을정의하는 TableRow 객체로구성되고, 각행은 0 개이상의셀들로구성 각셀은0개이상의 View 오브젝트로표현되므로셀은비어있는상태가될수있음 열들은비어있는공간을최대로차지하여그릴수도있고, 화면에맞게줄일수도있으며, 보이지않게할수도있다 179

40 Layout AbsoluteLayout x, y 좌표를이용하여하위구성요소들을화면에표시 좌측상단을 (0,0) 으로하여우측하단이최대값인절대좌표계 margin 은지원되지않으나, 구성요소가겹치는것은허용 서로다른단말기환경에서는프로그래머가예상한대로그려지지않을수있으므로사용하지않는것이좋음 180

41 Layout RelativeLayout 하위구성요소들이다른구성요소의상대적인위치에따라그려짐 어떤객체를중심으로오른쪽, 왼쪽, 위쪽, 아래쪽과같은형식으로객체를그리는방식 181

42 View ViewGroup 클래스 설명 FrameLayout 단일객체를표현하기위한 View 프레임역할. 두개이상의객체를표현할때는나중에그린객체를먼저보여줌 LinearLayout 수평또는수직으로구성요소를배치하기위한레이아웃. 창의길이가화면의길이를초과하면자동으로스크롤바생성 TableLayout AbsoluteLayout RelativeLayout 행과열을가진테이블레이아웃. 행은가장큰구성요소에맞게크기가재설정되고, 셀테두리는감춰짐 프로그래머가좌표값으로객체의위치를명시하는레이아웃 한구성요소를기준으로다른구성요소들을표시하기위한방법의레이아웃 182

43 View ViewGroup 클래스 Gallery GridView ListView ScrollView 설명 이미지를수평으로스크롤하면서보여주는클래스 눈금구조를보여주는클래스 스크롤링되는하나의컬럼리스트표현 수직으로구성요소의열을스크롤링 Spinner 한줄짜리텍스트박스안에서목록의아이템을한번에하나씩보여줌. 수평또는수직으로스크롤될수있는한줄짜리리스트박스와유사 SurfaceView 그리기전용인표면에직접접근할수있도록함. SurfaceView 는위젯을사용하는프로그래밍보다는점과라인을직접그리는 Low level 코딩에사용 183

44 View ViewGroup 클래스 TabHost ViewFlipper ViewSwitcher 설명 클릭에반응하는탭선택목록을제공하며, 탭을클릭하면애플리케이션이바뀜 한번에한개의아이템을보여주는목록. 슬라이드쇼처럼시간주기로아이템을바뀌도록설정가능 ViewFlipper 와동일 184

45 View View 크기지정 단위 px(pixels) dip(device independent pixels) sp(scaled pixels best for text size) pt(points) in(inches) mm(millimeters) ex. android:layout_width = 25px 185

46 View 186

47 Image Display DisplayImage 프로젝트생성 -Project name : DisplayImage -Application name : DisplayImage -Package name : com.tipsy.displayimage -Create Activity : DisplayImage 187

48 Image Display Layout 변경 LinearLayout 을 FrameLayout 으로교체 ImageView 클래스를 FrameLayout 의하위클래스로사용 188

49 Image Display 클래스추가 189

50 Image Display 인터페이스추가 -Name : ImageView -Superclass : android.view.surfaceview 190

51 Image Display 인터페이스추가 -Choose interface : callback 입력 -Matching items: callback android.view.surfaceholder 선택 191

52 Image Display 인터페이스추가 192

53 Image Display 생성자추가 두번째생성자메소드인 Add constructor ImageView(Context, AttributeSet) 더블클릭 193

54 Image Display 완성된내용확인 194

55 Multi-Thread Programming ImageThread 생성 195

56 Multi-Thread Programming ImageThread 생성자 196

57 Multi-Thread Programming ImageThread 생성 197

58 Multi-Thread Programming ImageThread 시작 198

59 Multi-Thread Programming animation 효과 199

60 Multi-Thread Programming 실행결과 200

61 Key Events onkeydown() 메소드추가 201

62 Key Events onkeydown 메소드작성 방향키 : -KEYCODE_DPAD_LEFT: 왼쪽 -KEYCODE_DPAD_RIGHT: 오른쪽 -KEYCODE_DPAD_UP: 위 202

63 Key Events 좌우측화살표이미지로딩 203

64 Key Events 방향키가눌렸을때의이벤트처리 mdirection == -1: 왼쪽화살표 mdirection == 1 : 오른쪽화살표 204

65 Key Events ImageThread 클래스멤버변수 205

66 Key Events left, right 방향키클릭결과 206

67 Sudoku Sudoku 프로젝트생성 -Project name : Sudoku -Build Target : Android 1.5 -Application name : Sudoku -Package name : com.tipsy.sudoku -Create Activity : Sudoku 207

68 Sudoku layout/main.xml 수정 208

69 Sudoku values/strings.xml 수정 209

70 Sudoku 실행결과 210

71 Sudoku 색상정의 colors.xml 추가 211

72 Sudoku 색상정의 - colors.xml 추가 212

73 Sudoku colors.xml 213

74 Sudoku Layout 수정 214

75 Sudoku 수정된 Layout 215

76 Sudoku 화면전환 [ctrl]+[f11] 을눌러화면전환 216

77 Sudoku 가로세로화면모두를고려한레이아웃 217

78 Sudoku TableLayout 구성 218

79 Sudoku TableLayout 적용결과 219

80 Sudoku - About About 상자구현 사용자가터치스크린을통해또는디패드 (D-pad: directional pad) 나트랙볼을사용해위치를탐색하여 About 버튼을선택하면, 스도쿠에관한정보를담은창이나타난다 새액티비티를정의하고시작시킨다 AlertDialog 클래스를사용해보여준다 하위클래스인 Dialog 클래스를새뷰로팽창시켜보여준다 220

81 Sudoku - About About activity Layout layout/about.xml 추가 221

82 Sudoku - About about.xml 222

83 Sudoku - About strings.xml 223

84 Sudoku - About About.java 파일추가 224

85 Sudoku - About About.java 225

86 Sudoku - About Sudoku.java 수정 226

87 Sudoku - About Sudoku.java 수정 onclick() 메소드작성 227

88 Sudoku - About AndroidManifest.xml 수정 228

89 Sudoku - About About 버튼클릭결과 229

90 Sudoku - Theme 테마적용하기 테마 : 안드로이드위젯의 look and feel 을덮어쓰기하는스타일 look and feel : 한시스템의사용자인터페이스와입력장치를통틀어일컫는표현으로, 분위기와같은주로인터페이스의전반적인외형과관계됨 CSS(Cascading Style Sheet) 와같이내용을외관이나스타일로부터분리 안드로이드는 Theme_ 로시작되는몇가지테마가제공되며, 하위클래스를만들거나기본값을덮어씀으로써자신만의테마를만들수있다 230

91 Sudoku - Theme About 액티비티에테마속성부여 AndroidManifest.xml 프로그램안에정의된리소스가아닌안드로이드가정의한리소스참조 231

92 Sudoku - Theme 테마적용결과 232

93 Sudoku - Theme 테마적용결과 233

94 Sudoku - Menu 메뉴추가하기 안드로이드에는두가지형태의메뉴기능존재 MENU 버튼에의한메뉴기능 화면위를손가락으로누를때 ( 또는 Dpad 의가운데버튼을눌렀을때 ) 나오는상황적 (contextual) 메뉴 234

95 Sudoku - Menu 메뉴버튼에의한메뉴기능 메뉴를위한 string 정의 values/strings.xml 수정 235

96 Sudoku - Menu 메뉴버튼에의한메뉴기능 res 디렉토리에 memu 디렉토리추가 236

97 Sudoku - Menu 메뉴버튼에의한메뉴기능 res/menu 디렉토리에 menu.xml 추가 237

98 Sudoku - Menu res/menu/menu.xml 238

99 Sudoku - Menu sudoku.java 에패키지 import import android.view.menu; import android.view.menuinflater; import android.view.menuitem; 239

100 Sudoku - Menu oncreateoptionsmenu 메소드추가 240

101 Sudoku - Menu oncreateoptionsmenu 메소드작성 241

102 Sudoku - Menu MENU 클릭결과 242

103 Sudoku - Settings 사용자가메뉴를선택하면 onoptionsitemselected() 메소드가호출됨 onoptionsitemselected() 추가 243

104 Sudoku - Settings onoptionsitemselected() 메소드작성 아직 Settings 클래스가정의되지않았기때문에오류발생 244

105 Sudoku - Settings Settings 추가 res/xml.settings.xmlsettings 에기본설정정의 245

106 Sudoku - Settings res/xml.settings.xml 에기본설정정의 246

107 Sudoku - Settings Settings.java 추가 247

108 Sudoku - Settings settings.java 작성 248

109 Sudoku - Settings AndroidManifest.xml 수정 Settings 액티비티추가 249

110 Sudoku - Settings 실행결과 250

111 Sudoku - Difficulty 게임선택을했을때 3 단계의난이도설정 res/values/strings.xml 에문자열추가 251

112 Sudoku - Difficulty 난이도목록작성 res/values/arrays.xml 추가 252

113 Sudoku - Difficulty sudoku.java 에패키지 import import android.app.alertdialog; app import android.content.dialoginterface; import android.util.log; 253

114 Sudoku - Difficulty 새게임버튼의클릭이벤트처리 sudoku.java 의 onclick() 메소드에 새게임 추가 254

115 Sudoku - Difficulty 난이도선택및게임시작 opennewgamedialog() 메소드작성 startgame() 메소드작성 255

116 Sudoku - Difficulty 실행결과 sudoku 메인화면에서 New Game 클릭 256

117 Sudoku - Debugging 로그메시지를이용한디버깅 시스템로그레벨 Log.e() : 오류 (errors) Log.w() : 경고 (warning) Log.i() : 정보 (information) Log.d() : 디버깅 (debugging) Log.v() : 세부정보 (verbose) eclipse 메뉴의 [window]-[show view]-[other] 에서 [android]-[log cat] 선택 257

118 Sudoku - Debugging 258

119 Sudoku - Debugging 259

120 Sudoku - Debugging 디버거로디버깅하기 AndroidManifest.xml 파일을통해디버깅활성화 260

121 Sudoku - Debugging 팝업메뉴의 [Degug As]-[Debug Configurations] 261

122 Sudoku - Terminate sudoku 종료하기 onclick() 메소드에 exit_button 처리추가 262

123 Sudoku - Terminate 실행결과 263

124 2D 그래픽 2 차원그래픽내장라이브러리제공 android.graphics 패키지 Color, Canvas, Paint 클래스 264

125 2D 그래픽 Color class 안드로이드는알파 (alpha), 레드 (red), 그린 (green), 블루 (blue) 로색상표현 각구성요소는 256개의값또는 8비트를가질수있으므로색은 32비트정수로표현 효율성을위해 Color 클래스의인스턴스대신정수사용 ex. int color = Color.BLUE; ;// 파란색 color = Color.argb(127, 255, 0, 255); // 반투명보라색 265

126 2D 그래픽 Color class XML 에서색상정의, JAVA 코드에서참조 XML 코드 <?xml version= 1.0 encoding= utf-8?> <resources> <color name= mycolor >#7FFF00FF</color> </resources> JAVA 코드 color = getresources().getcolor(r.color.mycolor); 266

127 2D 그래픽 Paint class 비트맵, 텍스트, 기하학적모양등의그래픽을그리는데필요한스타일과색상등의정보를포함 ex. cpaint.setcolor(color.ltgray); // 연한회색색상 267

128 2D 그래픽 Canvas class 그림이그려지는표면 줄을긋거나사각형과원, 또는다른임의의모형을그릴수있음 ex. 안드로이드에서는 Activity가디스플레이화면을차지, 이는 View를포함하며, View 는 Canvas 를포함 Canvas에그리려면 View.onDraw() 메소드를 override ondraw() 메소드는 Canvas를매개변수로사용 268

129 2D 그래픽 Canvas class /* GraphicsView 를가진 Graphics Activity */ public class Graphics extends Activity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(new GraphicsView(this)); } static public class GraphicsView extends View { public GraphicsView(Context context) { super(context); protected void ondraw(canvas canvas) { // 그리기명령 } } } 269

130 2D 그래픽 Path class 선, 사각형, 커브등벡터그리기명령어포함 PathEffect 클래스를사용하여꾸미기가능 ex. 원형경로정의 /* x=150, y=150, 반경이 100 픽셀인원을정의 */ circle = new Path(); circle.addcircle(150, 150, 100, Direction.CW); // 원을따라텍스트삽입 private static final String QUOTE = Now is the time for all + good man to come to the aid of their country. ; canvas.drawpath(circle, cpaint); canvas.drawtextonpath(quote, circle, 0, 20, tpaint); 270

131 2D 그래픽 원주위에텍스트그리기예제 graphics 프로젝트생성 -Project name : graphics -Application name : graphics -Package name : com.tipsy.graphics -Create Activity : graphics 271

132 2D 그래픽 원주위에텍스트그리기예제 graphics.java public class graphics extends Activity { private static Path circle; private static final String QUOTE = "Now is the time for all" + "good man to come to the aid of their country."; /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(new GraphicsView(this)); } 272

133 2D 그래픽 원주위에텍스트그리기예제 static public class GraphicsView extends View { public GraphicsView(Context context) { super(context); protected void ondraw(canvas canvas) { Paint cpaint = new Paint(); Paint tpaint = new Paint(); circle = new Path(); circle.addcircle(150, 150, 100, Direction.CW); cpaint.setcolor(color.ltgray); tpaint.setcolor(color.blue); tpaint.settextsize(20); } } canvas.drawpath(circle, cpaint); canvas.drawtextonpath(quote, circle, 0, 20, tpaint); } 273

134 2D 그래픽 실행결과 274

135 Drawable Drawable 클래스 비트맵이나단색과같이화면표시용시각적요소에사용 다른그래픽에결합가능하며, 사용자인터페이스위젯 (e.g. 버튼, 뷰의배경 ) 에사용가능 drawable 형태 Bitmap : PNG, JPEG NinePatch : 늘어나는 PNG, 크기조절이가능한비트맵버튼의배경으로사용 Shape : 경로에기초한벡터그리기명령어. SVG(Scalable Vector Graphics) 의축소판 Layer : z-order 순서에따라덮어쓰기가능한하위 drawable을포함하는컨테이너 275

136 Drawable drawable 형태 State : 상태에맞는하나의하위 drawable 을보여주는컨테이너, 버튼의다양한선택과초점의상태를나타내는데사용 levels : 레벨에맞춰하나의하위 drawable을보여줄때쓰이는컨테이너, 배터리나안테나주파수강도의표현에사용 Scale : 사진을확대해서보여주는뷰어처럼선택된레벨에따라크기가조정되는하위 drawable 을보여주는컨테이너 drawable 은항상 XML 에서정의됨 ex. 한색상에서다른색으로그라데이션되는효과 276

137 Drawable 새게임시작하기 Sudoku.java 의 startgame() 수정 private void startgame(int i) { Log.d(TAG, "clicked on " + i); } Intent intent = new Intent(SudoKu.this, Game.class); intent.putextra(game.key_difficulty, te tra(game i); startactivity(intent); 277

138 Drawable Game class 정의 package import import android.app.activity; import android.app.dialog; import android.os.bundle; import android.util.log; import android.view.gravity; ie it import android.widget.toast; 278

139 Drawable public class Game extends Activity { private static final String TAG = "Sudoku"; public static final String KEY_DIFFICULTY = "difficulty"; public static final int DIFFICULTY_EASY = 0; public static final int DIFFICULTY_MEDIUM = 1; public static final int DIFFICULTY_HARD = 2; private int puzzle[] = new int [9*9]; private PuzzleView protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); Log.d(TAG, "oncreate"); int diff = getintent().getintextra(key_difficulty, DIFFICULTY_EASY); //puzzle = getpuzzle(diff); //calculateusedtiles(); l } } puzzleview = new PuzzleView(this); setcontentview(puzzleview); //puzzleview.requestfocus; 279

140 Drawable AndroidManifest.xml 에등록 <activity android:name=".game" > </activity> strings.xml 에문자열추가 <string name="game_title">game</string> <string name="no_moves_label">no moves</string> <string name="keypad_title">keypad</string> 280

141 Drawable PuzzleView 클래스정의 package import import android.content.context; import android.graphics.canvas; import android.graphics.paint; import android.graphics.rect; import android.graphics.paint.fontmetrics; import android.graphics.paint.style; import android.util.log; import android.view.keyevent; import android.view.motionevent; import android.view.view; //import android.view.andimation.animationutils; 281

142 Drawable PuzzleView 클래스정의 PuzzleView class public class PuzzleView extends View { private static ti final String TAG="Sudoku"; " private final Game game; } public PuzzleView(Context context) { super(context); this.game = (Game) context; setfocusable(true); setfocusableintouchmode(true); } //

143 Drawable PuzzleView 클래스정의 PuzzleView class 에 onsizechanged() 메소드추가 private float width; private float height; ht private int selx; private int sely; private final Rect selrect = new Rect(); protected void onsizechanged(int w, int h, int oldw, int oldh) { width = w / 9f; height = h / 9f; //getrect(selx, sely, selrect); Log.d(TAG, "onsizechanged: width " + width + ", height" + height); super.onsizechanged(w, h, oldw, oldh); } 283

144 Drawable 보드그리기 colors.xml 에새색상정의 <resources> <color name="background">#3500ffff</color> <color name="puzzle_background">#ffe6f0ff</color> <color name="puzzle_hilite">#ffffffff</color> <color name="puzzle puzzle_light light">#64c6d4ef</color> <color name="puzzle_dark"># f</color> <color name="puzzle_foreground">#ff000000</color> <color name="puzzle_hint_0">#64ff0000</color> <color name="puzzle_hint_1">#6400ff80</color> <color name="puzzle_hint_2">#2000ff80</color> <color name="puzzle_selected">#64ff8000</color> </resources> 284

145 Drawable PuzzleView 클래스정의 PuzzleView class 에 ondraw() protected t void ondraw(canvas canvas) { // TODO Auto-generated method stub Paint background = new Paint(); background.setcolor(getresources().getcolor(r.color.puzzle_bb ackground)); canvas.drawrect(0, 0, getwidth(), getheight(), background); } // 보드그리기 // 숫자그리기 // 힌트그리기 // 셀렉션그리기 285

146 Drawable PuzzleView 클래스정의 PuzzleView class 에 ondraw() 메소드구현 // 보드그리기 // 그리드라인색상정의하기 Paint dark = new Paint(); dark.setcolor(getresources().getcolor(r.color.puzzle_dark)); dark)); Paint hilite = new Paint(); hilite.setcolor(getresources().getcolor(r.color.puzzle_hilite)); Paint light = new Paint(); light.setcolor(getresources().getcolor(r.color.puzzle_light)); 286

147 Drawable PuzzleView 클래스정의 PuzzleView class 에 ondraw() 메소드구현 // 보조그리드라인그리기 for (int i = 0; i < 9; i++) { canvas.drawline(0, i*height, getwidth(), i*height, light); } canvas.drawline(0, i+height+1, getwidth(), i*height+1, hilite); canvas.drawline(i*width, 0, i*width, getheight(), light); canvas.drawline(i*width+1, 0, i*width+1, getheight(), hilite); 287

148 Drawable PuzzleView 클래스정의 PuzzleView class 에 ondraw() 메소드구현 // 주그리드라인그리기 for (int i = 0; i < 9; i++) { if (i % 3!= 0) continue; canvas.drawline(0, i*height, getwidth(), i*height, dark); canvas.drawline(0, i*height+1, getwidth(), i*height+1, hilite); canvas.drawline(i*width, 0, i*width, getheight(), dark); canvas.drawline(i*width+1, 0, i*width+1, getheight(), hilite); } 288

149 Drawable 중간결과확인 289

150 숫자그리기 숫자그리기 프로그램이어떤해상도에서도무리없이작동하기위해서는절대픽셀값이나포인트크기는사용하지않는다! FontMetrics 클래스를사용하여한글자가얼마만큼의세로공간을차지하는지알아낸후조절수치계산 290

151 숫자그리기 PuzzleView.java 파일에숫자그리기코드추가 /* 숫자그리기 */ Paint foreground = new Paint(Paint.ANTI_ALIAS_FLAG); foreground.setcolor(getresources().getcolor(r.color.puzzle_foreground)); foreground.setstyle(style.fill); y foreground.settextsize(height * 0.75f); foreground.settextscalex(width / height); foreground.settextalign(paint.align.center); /* 타일중앙에숫자그리기 */ FontMetrics fm = foreground.getfontmetrics(); /* X 축중앙 */ float x = width / 2; /* Y 축중앙 */ float y = height / 2 - (fm.ascent + fm.descent) / 2; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { canvas.drawtext(this.game.gettilestring(i, j), i * width + x, j * height + y, foreground); } } 291

152 숫자그리기 Game.java gettilestring(), gettile() 메소드 protected String gettilestring(int x, int y) { int v = gettile(x, y); if (v == 0) return ""; else return String.valueOf(v); } private int gettile(int x, int y) { return puzzle[y * 9 + x]; } 292

153 숫자그리기 Game.java getpuzzle() 메소드 private final String easypuzzle = " "+ " "+ " "; static protected int[] frompuzzlestring(string string) { int[] puz = new int[string.length()]; for (int i = 0; i < puz.length; i++) { puz[i] = string.charat(i) - '0'; } return puz; } private int[] getpuzzle(int diff) { String str_puz = ""; } switch (diff) { case DIFFICULTY_EASY: str_puz = easypuzzle; break; } return frompuzzlestring(str_puz); 293

154 숫자그리기 숫자그리기결과 294

155 사용자입력 사용자입력처리 폰의형태와크기가다양 다양한입력방식사용 : 디패드, 터치스크린, 트랙볼등 다양한해상도및입력장치를지원할수있어야함 295

156 사용자입력 셀렉션처리 PuzzleView.java /* 셀렉션그리기 */ Log.d(TAG, "selrect=" + selrect); Paint selected = new Paint(); selected.setcolor(getresources().getcolor(r.color.puzzle_selected)); canvas.drawrect(selrect, selected); 296

157 사용자입력 셀렉션이동하기 : onkeydown() public boolean onkeydown(int keycode, KeyEvent event) { // TODO Auto-generated method stub Log.d(TAG, "onkeydown: keycode=" + keycode + ", event=" + event); switch (keycode) { case KeyEvent.KEYCODE_DPAD_UP: select(selx, sely - 1); break; case KeyEvent.KEYCODE_DPAD_DOWN: select(selx, sely + 1); break; case KeyEvent.KEYCODE_DPAD_LEFT: select(selx - 1, sely); break; case KeyEvent.KEYCODE_DPAD_RIGHT: select(selx + 1, sely); break; default: return super.onkeydown(keycode, event); } return true; } 297

158 사용자입력 셀렉션이동하기 : onkeydown() 메소드 선택지점의새로운 xy x,y 좌표를계산하고 getrect() 를다시호출하여새로운셀렉션위치계산 private void select(int x, int y) { invalidate(selrect); selx = Math.min(Math.max(x, 0), 8); } sely = Math.min(Math.max(y, ( h ( 0), 8); getrect(selx, sely, selrect); invalidate(selrect); private void getrect(int x, int y, Rect rect) { rect.set((int)(x * width), (int)(y * height), (int)(x * width + width), (int)(y * height + height)); } 298

159 사용자입력 invalidate() 이전의선택영역을다시그림 새로운선택영역을다시그림 299

160 사용자입력 타일위숫자교체 setselectedtile() 메소드구현 public void setselectedtile(int tile) { } if (game.settileifvalid(selx, sely, tile)) { invalidate(); } else { Log.d(TAG, "setselectedtile: invalid: " + tile); startanimation(animationutils.loadanimation(game, R.anim.shake)); } 300

161 힌트 힌트기능 몇번의기회가남았는지에대해색상으로힌트제공 PuzzleView.java 의 ondraw() 메소드에추가 Paint hint = new Paint(); int c[] = { getresources().getcolor(r.color.puzzle_hint_0), getresources().getcolor(r.color.puzzle_hint_1), getresources().getcolor(r.color.puzzle_hint_2), }; Rect r = new Rect(); for (int i = 0; i < 9; i++) { } for (int j = 0; j < 9; j++) { int movesleft = 9 - game.getusedtiles(i, j).length; if (movesleft < c.length) ){ getrect(i, j, r); hint.setcolor(c[movesleft]); canvas.drawrect(r, hint); } } 301

162 힌트 힌트제공결과 302

163 화면흔들기 잘못된값의입력시화면흔들기 빈타일에이미입력된값입력또는잘못된값을입력하는경우 PuzzleView.java 의 setselectedtile() 수정 public void setselectedtile(int tile) { if (game.settileifvalid(selx, sely, tile)) { invalidate(); } else { Log.d(TAG, "setselectedtile: invalid: " + tile); startanimation(animationutils.loadanimation(game, R.anim.shake)); } } 303

164 화면흔들기 res/anim/shake.xml 추가 1000 밀리초에 10 픽셀씩좌우로흔들기 <?xml version="1 1.0" encoding="utf-8" encoding=utf8?> <translate xmlns:android=" android:fromxdelta="0" /> android:toxdelta="10" android:duration="1000" 304

165 화면흔들기 res/anim/cycle_7.xml 추가 흔들기애니메이션 7 회반복 <?xml version="1 1.0" encoding="utf-8" encoding=utf8?> <cycleinterpolator xmlns:android=" android:cycles="7" /> 305

166 화면흔들기 흔들기결과 306

167 키패드 키패드작성 1 res/layout/keypad.xml <TableLayout xmlns:android=" android:id="@+id/keypad" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height= height="wrap_content" android:stretchcolumns="*"> <TableRow> <Button android:id="@+id/keypad@ / _ 1" android:text="1"> </Button> <Button android:id="@+id/keypad_2" android:text="2"> </Button> <Button android:id="@+id/keypad_3" android:text="3"> 3> </Button> </TableRow> 307

168 키패드 키패드작성 2 res/layout/keypad.xml <TableRow> <Button android:id="@+id/keypad_4" android:text="4"> </Button> <Button android:id="@+id/keypad_5" android:text="5"> 5> </Button> <Button android:id="@+id/keypad_6" android:text="6"> </Button> </TableRow> 308

169 키패드 키패드작성 3 res/layout/keypad.xml <TableRow> <Button android:id="@+id/keypad_7" android:text="7"> </Button> <Button android:id="@+id/keypad_8" android:text="8"> 8> </Button> <Button android:id="@+id/keypad_9" android:text="9"> </Button> </TableRow> </TableLayout> 309

170 키패드 키패드클래스정의 src/keypad.java public class Keypad extends Dialog { protected static final String TAG = "Sudoku"; private final View keys[] = new View[9]; private View keypad; private final int useds[]; private final PuzzleView puzzleview; public Keypad(Context context, int useds[], PuzzleView puzzleview) { super(context); this.useds = useds; this.puzzleview = puzzleview; } 310

171 키패드 키패드클래스정의 protected void oncreate(bundle savedinstancestate) { // TODO Auto-generated method stub super.oncreate(savedinstancestate); } setcontentview(r.layout.keypad); layoutkeypad); findviews(); for (int element : useds) { if (element!= 0) keys[element-1].setvisibility(view.invisible); } setlisteners(); 311

172 키패드 Keypad.java 의 findviews() 메소드 모든키패드의키와메인키패드창을불러와저장 private void findviews() { } keypad = findviewbyid(r.id.keypad); idk d) keys[0] = findviewbyid(r.id.keypad_1); keys[1] = findviewbyid(r.id.keypad_2); keys[2] = findviewbyid(r.id.keypad_3); keys[3] = findviewbyid(r.id.keypad_4); keys[4] = findviewbyid(r.id.keypad_5); keys[5] = findviewbyid(r.id.keypad_6); keys[6] = findviewbyid(r.id.keypad_7); keys[7] = findviewbyid(r.id.keypad_8); keys[8] = findviewbyid(r.id.keypad_9); 312

173 키패드 Keypad.java 의 setlisteners() 메소드 모든키패드의키를순회하며각키와주요키패드창에리스너설정 private void setlisteners() { for (int i = 0; i < keys.length; i++) { final int t = i + 1; keys[i].setonclicklistener(new View.OnClickListener() { } public void onclick(view v) { returnresult(t); }}); } keypad.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { returnresult(0); }}); 313

174 키패드 Keypad.java 의 onkeydown() 메소드 public boolean onkeydown(int keycode, KeyEvent event) { // TODO Auto-generated method stub int tile = 0; switch (keycode) { case KeyEvent.KEYCODE_0: case KeyEvent.KEYCODE_SPACE:tile = 0; break; case KeyEvent.KEYCODE_1:tile = 0; break; case KeyEvent.KEYCODE_2:tile = 0; break; case KeyEvent.KEYCODE_3:tile = 0; break; case KeyEvent.KEYCODE_4:tile KEYCODE = 0; break; case KeyEvent.KEYCODE_5:tile = 0; break; case KeyEvent.KEYCODE_6:tile = 0; break; case KeyEvent.KEYCODE_7:tile = 0; break; case KeyEvent.KEYCODE_8:tile KEYCODE = 0; break; case KeyEvent.KEYCODE_9:tile = 0; break; default: return super.onkeydown(keycode, event); } if (isvalid(tile)) returnresult(tile); return true; } 314

175 키패드 Keypad.java 의 isvalid() 메소드 현재의위치에유효한숫자인지확인 private boolean isvalid(int tile) { for (int t : useds) { if (tile == t) return false; } return true; } 315

176 키패드 입력테스트 316

177 키패드 방향키를이용하여셀렉션이동확인 317

178 키패드 셀렉션에숫자입력 onkeydown() 메소드에 0~9 까지키입력추가 디패드를사용하는경우 중앙 버튼이나 엔터 를입력하면, 키패드창을띄워사용자가숫자를고르게한다 case KeyEvent.KEYCODE_0: case KeyEvent.KEYCODE_SPACE: case KeyEvent.KEYCODE_1: case KeyEvent.KEYCODE_2: case KeyEvent.KEYCODE_3: case KeyEvent.KEYCODE_4: case KeyEvent.KEYCODE_5: case KeyEvent.KEYCODE_6: case KeyEvent.KEYCODE_7: case KeyEvent.KEYCODE_8: ent KEYCODE 8 case KeyEvent.KEYCODE_9: case KeyEvent.KEYCODE_ENTER: case KeyEvent.KEYCODE_DPAD_CENTER: DPAD CENTER: game.showkeypadorerror(selx, sely); break; setselectedtile(0); break; setselectedtile(1); break; setselectedtile(2); break; setselectedtile(3); break; setselectedtile(4); break; setselectedtile(5); break; setselectedtile(6); break; setselectedtile(7); break; setselectedtile(8); break; setselectedtile(9); break; 318

179 키패드 터치스크린에대해 ontouchevent() public boolean ontouchevent(motionevent event) { // TODO Auto-generated method stub if (event.getaction()!= MotionEvent.ACTION_DOWN) return super.ontouchevent(event); } select((int)(event.getx() / width), (int)(event.gety() / height)); game.showkeypadorerror(selx, sely); Log.d(TAG, "ontouchevent: x " + selx + ", y " + sely); return true; 319

180 오디오재생 audio 프로젝트생성 -Project name : audio -Build Target : Android 1.5 -Application name : audio -Package name : com.tipsy.audio -Create Activity : audio 320

181 오디오재생 사운드파일복사 res/raw 디렉토리에 mp3 파일복사 321

182 오디오재생 안드로이드가지원하는오디오형식 WAV(PCM 압축되지않음 ) AAC( 아이팟포맷 ) MP3 WMA(Windows Media Audio) AMR( 음성코덱 ) OGG(Ogg Vorbis) MIDI( 악기 ) 에뮬레이터에서는 OGG, WAV, MP3 포맷만제대로작동됨 322

183 오디오재생 Audio Activity 323

184 오디오재생 mp3 파일이제대로플레이되는지확인 324

185 오디오재생 Sudoku 에사운드적용하기 배경음악으로사용할 mp3 파일설정 325

186 오디오재생 Music.java 파일에 Music 클래스작성 package com.tipsy.sudoku; import android.content.context; import android.media.mediaplayer; public class Music { private static MediaPlayer mp = null; public static void play(context context, int resource) { /* play */ stop(context); mp = MediaPlayer.create(context, resource); mp.setlooping(true); mp.start(); } } public static void stop(context context) { /* stop */ if (mp!= null) { mp.stop(); mp.release(); mp = null; } } 326

187 오디오재생 Sudoku activity protected void onpause() { // TODO Auto-generated method stub } super.onpause(); protected void onresume() { // TODO Auto-generated method stub super.onresume(); Music.play(this, R.raw.main); } 327

188 오디오재생 Game activity protected void onpause() { // TODO Auto-generated method stub } super.onpause(); protected void onresume() { // TODO Auto-generated method stub super.onresume(); Music.play(this, R.raw.game); } 328

189 오디오재생 activity 전환시배경음악재생확인 main.mp3 game.mp3 329

190 로컬데이터처리 옵션추가하기 Settings.java 수정 330

191 로컬데이터처리 Music.java 의 Music.play() 수정 설정내용을반영하여플레이여부결정 public static void play(context context, int resource) { stop(context); t t) } if (Settings.getMusic(context)) { } mp = MediaPlayer.create(context, resource); mp.setlooping(true); mp.start(); 331

192 로컬데이터처리 PuzzleView.java 의 PuzzleView.onDraw() 수정 설정내용을반영하여힌트사용여부결정 if (Settings.getHints(getContext())) { } // 힌트그리기 332

193 로컬데이터처리 이전게임계속하기 게임이중도에중단되었을경우이전게임이어하기 퍼즐의상태는한타일당한문자, 모두 81 개의문자열로저장 Game 클래스에퍼즐데이터키를위한상수와이전게임을계속한다는것을알려주기위한상수정의 333

194 로컬데이터처리 Game.java 의 onpause() 메소드에퍼즐상태저장구현 private static final String PREF_PUZZLE = "puzzle"; protected t static ti final int DIFFICULTY_CONTINUE CONTINUE = protected void onpause() { // TODO Auto-generated method stub super.onpause(); Music.stop(this); } /* save current puzzle */ getpreferences(mode_private).edit().putstring(pref_puzzle, topuzzlestring(puzzle)).commit(); 334

195 로컬데이터처리 Game.java 의 getpuzzle() 메소드수정 switch (diff) { case DIFFICULTY_CONTINUE: 기본설정에저장된게임을읽어온다 str_puz = getpreferences(mode_private).getstring(pref_puzzle, PRIVATE) getstring(pref PUZZLE easypuzzle); break; case DIFFICULTY_HARD: str_puz = hardpuzzle; break; case DIFFICULTY_EASY: str_puz = easypuzzle; break; case DIFFICULTY_MEDIUM: default: } str_puz = mediumpuzzle; break; 335

196 로컬데이터처리 계속하기 (continue_button) public void onclick(view v) { switch (v.getid()) { case R.id.about_button: Intent i = new Intent(this, About.class); startactivity(i); break; case R.id.new_button: opennewgamedialog(); break; case R.id.exit_button: finish(); break; case R.id.continue_button: startgame(game.difficulty_continue); break; } } 336

197 로컬데이터처리 protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); Log.d(TAG, "oncreate"); int diff = getintent().getintextra(key_difficulty, DIFFICULTY_EASY); puzzle = getpuzzle(diff); calculateusedtiles(); puzzleview = new PuzzleView(this); setcontentview(puzzleview); puzzleview.requestfocus(); } getintent().putextra(key_difficulty, DIFFICULTY_CONTINUE); 337

198 로컬데이터처리 현재위치기억하기 스도쿠실행중화면방향을바꾸면커서위치정보상실 안드로이드 View 는자동으로상태를저장하지만, 사용자정의 View 는자동저장되지않음 PuzzleView.java 에커서위치를저장 / 복원할수있는코드구현 338

199 로컬데이터처리 커서위치기억을위한상수정의 PuzzleView() 에 setid() 메소드추가 private static final String SELX = "selx"; private static ti final String SELY = "sely"; private static final String VIEW_STATE = "viewstate"; private static final int ID = 42; public PuzzleView(Context context) { super(context); this.game = (Game) context; setfocusable(true); setfocusableintouchmode(true); } setid(id); 339

200 로컬데이터처리 onsaveinstancestate() protected Parcelable onsaveinstancestate() { // TODO Auto-generated method stub Parcelable p = super.onsaveinstancestate(); Log.d(TAG, "onsaveinstancestate"); } Bundle bundle = new Bundle(); bundle.putint(selx, selx); bundle.putint(sely, sely); bundle.putparcelable(view_state, p); return bundle; 340

201 로컬데이터처리 onrestoreinstancestate() protected void onrestoreinstancestate(parcelable state) { // TODO Auto-generated method stub Log.d(TAG, "onrestoreinstancestate"); Bundle bundle = (Bundle)state; select(bundle.getint(selx), bundle.getint(sely)); super.onrestoreinstancestate(bundle.getparcelable(view_state)); return; } 341

202 로컬데이터처리 위치기억처리전화면전환시 342

203 로컬데이터처리 위치기억처리후화면전환시 343

204 동영상재생 안드로이드가지원하는동영상포맷 MP4(MPEG-4) 4) H.263 H.264(AVC) 윈도우장치에서는 MP3 만안정적으로동작됨 QuickTime 등을사용하여비디오포맷변경가능 344

205 동영상재생 SDcard 생성 Q:\Android_Bit\Android_Install_Packages\android-sdk-windows- 1.5_r3\android-sdk-w indows-1.5_r3\tools>mksdcard 512M sd.img 345

206 동영상재생 SDcard 인식확인 346

207 동영상재생 SDcard 마운트부팅 쉘기반 Q:\Android_Bit\Android_Install_Packages\android-sdk-windows- 1.5_r3\android-sdk-w indows-1.5_r3\tools>emulator.exe l t -sdcard d sd.img -avd aa 347

208 동영상재생 SDcard 마운트부팅 이클립스기반 348

209 동영상재생 SDcard 마운트부팅 이클립스기반 -sdcard H:\Android Android\sd.img img sd 카드이미지가있는경로지정 349

210 동영상재생 SDcard 에 mp4 파일추가 shell 명령 Q:\Android_Bit\Android_Install_Packages\android-sdk-windows- 1.5_r3\android-sdk-w indows-1.5_r3\tools>adb db push p:\android_projects\sample.mp4 \ /sdcard/sample.mp4 849 KB/s ( bytes in s) Q:\Android_Bit\Android_Install_Packages\android-sdk-windows- 1.5_r3\android-sdk-w indows-1.5_r3\tools> 350

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다. 헬로, 안드로이드 4 주차 사용자인터페이스디자인하기 (2) 강대기동서대학교컴퓨터정보공학부 학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다. 차례 메뉴추가하기 Settings 추가하기 새게임시작하기

More information

학습목표 선언하여디자인을하는방법을이해하고, 실행할수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행할수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행할수있다.

학습목표 선언하여디자인을하는방법을이해하고, 실행할수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행할수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행할수있다. 헬로, 안드로이드 3 주차 사용자인터페이스디자인하기 (1) 강대기동서대학교컴퓨터정보공학부 학습목표 선언하여디자인을하는방법을이해하고, 실행할수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행할수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행할수있다. 차례 스도쿠예제소개하기 선언하여디자인하기 시작화면만들기 대체리소스사용하기 About

More information

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID android:title= 항목제목 /> </menu> public boolean oncreateoptionsmenu(menu menu) { getme 8 차시메뉴와대화상자 1 학습목표 안드로이드에서메뉴를작성하고사용하는방법을배운다. 안드로이드에서대화상자를만들고사용하는방법을배운다. 2 확인해볼까? 3 메뉴 1) 학습하기 [ 그림 8-1] XML 을이용한옵션메뉴설정방법 public boolean

More information

슬라이드 1

슬라이드 1 헬로, 안드로이드 3 주차 사용자인터페이스디자인하기 (1) 강대기동서대학교컴퓨터정보공학부 학습목표 선언하여디자인을하는방법을이해하고, 실행핛수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행핛수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행핛수있다. 차례 스도쿠예제소개하기 선언하여디자인하기 시작화면만들기 대체리소스사용하기 About

More information

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드]

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드] Android UI 구현 학습목표 교육목표 Android application 구성요소 Activity Layout UI 설계 Linear Layout 구현 Android application 구성요소 (1) () Application 구성요소 AndroidManifest.xml Android application 구성요소 (2) 구성요소 기능 Activity

More information

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation="vertical" > 4 <ImageView

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation=vertical > 4 <ImageView 7 차시이미지처리 1 학습목표 이미지뷰를사용하는방법을배운다. 비트맵을사용하는방법을배운다. 2 확인해볼까? 3 이미지뷰와이미지버튼 1) 학습하기 [ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 4

More information

( )부록

( )부록 A ppendix 1 2010 5 21 SDK 2.2. 2.1 SDK. DevGuide SDK. 2.2 Frozen Yoghurt Froyo. Donut, Cupcake, Eclair 1. Froyo (Ginger Bread) 2010. Froyo Eclair 0.1.. 2.2. UI,... 2.2. PC 850 CPU Froyo......... 2. 2.1.

More information

03장

03장 CHAPTER3 ( ) Gallery 67 68 CHAPTER 3 Intent ACTION_PICK URI android provier MediaStore Images Media EXTERNAL_CONTENT_URI URI SD MediaStore Intent choosepictureintent = new Intent(Intent.ACTION_PICK, ë

More information

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 - 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 - ArrayAdapter ArrayAdapter adapter = new ArrayAdapter(this, android.r.layout.simple_list_item_1,

More information

학습목표 2D 그래픽에대해배운다. Color, Paint, Canvas, Path, Drawable 클래스를배운다. 스도쿠의게임시작하기를구현하고, Game 클래스, PuzzleView 클래스를정의한다. 정의된클래스내에서보드를그리고, 숫자를그린다. 숫자입력, 힌트추가,

학습목표 2D 그래픽에대해배운다. Color, Paint, Canvas, Path, Drawable 클래스를배운다. 스도쿠의게임시작하기를구현하고, Game 클래스, PuzzleView 클래스를정의한다. 정의된클래스내에서보드를그리고, 숫자를그린다. 숫자입력, 힌트추가, 헬로, 안드로이드 5 주차 2D 그래픽배우기 (1) 강대기동서대학교컴퓨터정보공학부 학습목표 2D 그래픽에대해배운다. Color, Paint, Canvas, Path, Drawable 클래스를배운다. 스도쿠의게임시작하기를구현하고, Game 클래스, PuzzleView 클래스를정의한다. 정의된클래스내에서보드를그리고, 숫자를그린다. 숫자입력, 힌트추가, 화면흔들기를구현해본다.

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

헬로, 안드로이드 7 주차 멀티미디어 강대기동서대학교컴퓨터정보공학부

헬로, 안드로이드 7 주차 멀티미디어 강대기동서대학교컴퓨터정보공학부 헬로, 안드로이드 7 주차 멀티미디어 강대기동서대학교컴퓨터정보공학부 학습목표 오디오를재생하는방법에대해알아본다. 비디오를재생하는방법에대해알아본다. 스도쿠게임에음향효과를추가해본다. 2D 그래픽을심화학습하기위해, 커스텀뷰에대해학습하고이벤트핸들링과연결해본다. 차례 오디오재생하기 비디오재생하기 스도쿠에음향추가하기 커스텀뷰 이벤트핸들링 요약 퀴즈 연습문제 오디오재생하기

More information

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android 2 xmlns:tools=http://schemas.android. 10 차시파일처리 1 학습목표 내장메모리의파일을처리하는방법을배운다. SD 카드의파일을처리하는방법을배운다. 2 확인해볼까? 3 내장메모리파일처리 1) 학습하기 [ 그림 10-1] 내장메모리를사용한파일처리 2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1

More information

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 UI 이벤트 Event listener Touch mode Focus handling Notification Basic toast notification Customized toast notification Status bar notification 2 사용자가인터랙션하는특정 View

More information

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요 9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요 [ 그림 9-1] 시간예약앱 활동과정 - 2 - [ 그림 9-2] 안드로이드 SDK Manager [ 예제 9-1]main.xml 1

More information

학습목표 게임이나프로그램에옵션을추가하는방법을알아본다. 이전의프로그램을계속하기위해상태를저장하는방법을알아본다. 게임에서현재의실행위치를저장하는방법에대해알아본다. 내부의파일시스템을읽고쓰는방법에대해알아본다. SD 카드에접근하는방법에대해알아본다. 여러 UI 위젯들에대해알아본다.

학습목표 게임이나프로그램에옵션을추가하는방법을알아본다. 이전의프로그램을계속하기위해상태를저장하는방법을알아본다. 게임에서현재의실행위치를저장하는방법에대해알아본다. 내부의파일시스템을읽고쓰는방법에대해알아본다. SD 카드에접근하는방법에대해알아본다. 여러 UI 위젯들에대해알아본다. 헬로, 안드로이드 9 주차 로컬데이터저장하기 강대기동서대학교컴퓨터정보공학부 학습목표 게임이나프로그램에옵션을추가하는방법을알아본다. 이전의프로그램을계속하기위해상태를저장하는방법을알아본다. 게임에서현재의실행위치를저장하는방법에대해알아본다. 내부의파일시스템을읽고쓰는방법에대해알아본다. SD 카드에접근하는방법에대해알아본다. 여러 UI 위젯들에대해알아본다. 음악재생에있어 Service

More information

13ÀåÃß°¡ºÐ

13ÀåÃß°¡ºÐ 13 CHAPTER 13 CHAPTER 2 3 4 5 6 7 06 android:background="#ffffffff"> 07

More information

슬라이드 1

슬라이드 1 Android Mobile Application Development Part 2 Agenda Part 1 Build Develop Environment Create new Project Composition of Project Simulate Application Part 2 User Interface Activity Toast Preference Log

More information

리니어레이아웃 - 2 -

리니어레이아웃 - 2 - 4 차시레이아웃 1 학습목표 레이아웃의개념을이해한다. 중복리니어레이아웃의개념이해한다. 2 확인해볼까? 3 레이아웃개념익히기 1) 학습하기 [ 그림 4-1] ViewGroup 클래스계층도 리니어레이아웃 - 2 - [ 예제 4-1]orientation 속성-horizontal 1

More information

01장

01장 CHAPTER1 Camera (MediaStore) EXIF 1 2 CHAPTER 1 SDK (intent) Camera Camera Camera Android Manifest xml Camera Camera

More information

// 화면을터치하였을때해야할작업구현 case MotionEvent.ACTION_MOVE: // 화면을드래그하였때 // 화면을드래그하였을때해야할작업구현 case MotionEvent.ACTION_UP: // 화면에서터치가사라질때 // 화면에서터치가사라질때해야할자업구현 c

// 화면을터치하였을때해야할작업구현 case MotionEvent.ACTION_MOVE: // 화면을드래그하였때 // 화면을드래그하였을때해야할작업구현 case MotionEvent.ACTION_UP: // 화면에서터치가사라질때 // 화면에서터치가사라질때해야할자업구현 c 6 차시이벤트처리 1 학습목표 터치이벤트처리를배운다. XML 의 onclick 속성을사용하여이벤트를처리한다. 2 확인해볼까? 3 이벤트처리하기 1) 학습하기 터치이벤트 public boolean ontouchevent(motionevent event) { swtich(event.getaction()) { case MotionEvent.ACTION_DOWN:

More information

2_안드로이드UI

2_안드로이드UI 03 Layouts 레이아웃 (Layout) u ViewGroup의파생클래스로서, 포함된 View를정렬하는기능 u 종류 LinearLayout 컨테이너에포함된뷰들을수평또는수직으로일렬배치하는레이아웃 RelativeLayout 뷰를서로간의위치관계나컨테이너와의위치관계를지정하여배치하는레이아웃 TableLayout 표형식으로차일드를배치하는레이아웃 FrameLayout

More information

슬라이드 1

슬라이드 1 13 장. 커스텀뷰개발 API 에서제공하는뷰를그대로이용하면서약간변형시킨뷰 여러뷰를합쳐서한번에출력하기위한뷰 기존 API 에전혀존재하지않는뷰 public class MyView extends TextView { public class MyView extends ViewGroup { public class MyView extends View { 커스텀뷰를레이아웃

More information

50_1953.pdf

50_1953.pdf C h a p t e r 02 194 Part Mobile Apps 01 01 02 Chapter 02 195 03 04 196 Part 02 01 02 03 04 Chapter 02 197 05 06 07 08 198 Part 03 01 02 Chapter 02 199 03 04 05 06 200 Part 07 08 09 10 Chapter 02 201 04

More information

위젯과레이아웃위젯은 View 클래스를상속해화면디스플레이와이벤트처리를할수있도록구현된스크린구성의최소단위를말한다. android.widget 패키지에는여러유형의위젯들이포함되어있다. TextView, ImageView, Button, ImageButton 등은가장간단한위젯들이

위젯과레이아웃위젯은 View 클래스를상속해화면디스플레이와이벤트처리를할수있도록구현된스크린구성의최소단위를말한다. android.widget 패키지에는여러유형의위젯들이포함되어있다. TextView, ImageView, Button, ImageButton 등은가장간단한위젯들이 구글안드로이드프로그래밍 GUI 설계, 위젯과레이아웃 QVGA급컬러 LCD 가대세가되어버린최근의휴대폰환경에서는 GUI 도모바일애플리케이션개발의매우중요한요소로자리잡았다. 이번달에는안드로이드플랫폼의 GUI 프레임워크를살펴보도록하자. 5 연재순서 1 회 2008. 1 애플리케이션구조분석 2 회 2008. 2 GUI 설계, 위젯과레이아웃 3 회 2008. 3 액티비티와인텐트,

More information

뷰그룹 ( 레이아웃 ) 레이아웃이름 ( 클래스이름 ) FrameLayout LinearLayout 설명단일객체를표현하기위한프레임. 왼쪽상단에하나의뷰를배치하기때문에나중 에그린객체만보여준다. 수평또는수직으로자손의뷰를배치. 뷰가들어갈만한공간이없을때는자동으로 스크롤바가나타난다

뷰그룹 ( 레이아웃 ) 레이아웃이름 ( 클래스이름 ) FrameLayout LinearLayout 설명단일객체를표현하기위한프레임. 왼쪽상단에하나의뷰를배치하기때문에나중 에그린객체만보여준다. 수평또는수직으로자손의뷰를배치. 뷰가들어갈만한공간이없을때는자동으로 스크롤바가나타난다 크기에사용할수있는단위 표기 단위 설명 px 픽셀수 사용중화면에서의픽셀수, 해상도가높아지면픽셀의물리적인크기가줄어든다. in 인치 사용중화면에서의인치단위의길이 mm 밀리미터 사용중화면에서의밀리미터단위의길이 pt 포인트수 사용중화면에서의 1/72 인치를 1 포인트로하는길이 dp 해상도에의존하지않는픽셀수 1은해상도가 180dpi일때 1 픽셀. 10dp가 160dpi일때에는

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

Microsoft PowerPoint UI-Layout.Menu.pptx

Microsoft PowerPoint UI-Layout.Menu.pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 User Interface 개요 Declaring Layout Creating Menus 2 View: user interface 의기본단위 사각형 (rectangle) 영역을차지하며, 그리기및이벤트처리의기본단위이다. Widget 을생성하기위한기본클래스이다. 예 : 버튼, 텍스트창,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Basic Widgets Jo, Heeseung Contents 뷰의개요 기본위젯다루기 기본위젯활용하기 2 뷰의개요 안드로이드화면에서실제로사용되는것은모두 View 클래스에서상속 이러한클래스를모두 ' 위젯 ' ( 또는뷰 ) 이라고도부름 위젯중에서다른위젯을담을수있는것들은주로 ViewGroup 클래스의하위에존재 이렇게다른위젯을담을수있는클래스를레이아웃이라고함 위젯

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

슬라이드 1

슬라이드 1 모바일소프트웨어프로젝트 지도 API 1 조 20070216 김성수 20070383 김혜준 20070965 이윤상 20071335 최진 1 매시업? 공개 API? 2 매시업 웹으로제공하고있는정보와서비스를융합하여새로운소프트웨어나서비스, 데이터베이스등을만드는것 < 최초의매시업 > 3 공개 API 누구나사용할수있도록공개된 API 지도, 검색등다양한서비스들에서제공 대표적인예

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

안드로이드2_14

안드로이드2_14 .,,,,,. 11...,,,.,.,.,. Chapter 14. force feedback.., getsystemservice. String service_name = Context.SENSOR_SERVICE; SensorManager sensormanager = (SensorManager)getSystemService(service_name);. Sensor.,,,.

More information

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프 OpenCV 와함께하는컴퓨터비전프로그래밍캠프 Appx. 안드로이드 OpenCV 프로그래밍 Last Update: 2018/06/07 Visual C++ 영상처리프로그래밍 저자 황선규 / 공학박사 sunkyoo.hwang@gmail.com 모바일컴퓨터비전프로그래밍 목차 Android 개요 Android 개발환경구축 Android Studio 설치 OpenCV

More information

Microsoft PowerPoint - 04기본위젯(Ver 1.0)

Microsoft PowerPoint - 04기본위젯(Ver 1.0) 04. 기본위젯익히기 IT CookBook, 안드로이드프로그래밍 학습목표 뷰와뷰상속을이해한다. 기본위젯을다루는방법을익힌다. 안드로이드앱의기본적인프로그래밍을숙달한다. Page 3 차례 Page 4 1. 뷰의개요 뷰와뷰그룹 안드로이드화면에서실제로사용되는것은모두 View 클래스에서상속을받으며, 이러한클래스를모두 ' 위젯 '( 또는뷰 ) 이라고도부름. 위젯중에서다른위젯을담을수있는것들은주로

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Hello Android Jo, Heeseung Contents HelloAndroid program AVD 명칭과사용법안드로이드응용프로그램작성안드로이드프로젝트구성 2 처음만드는 [Hello Android] 프로그램 3 처음만드는 [Hello Android] 프로그램 이클립스메뉴 [File]-[New]-[Project] 를선택 [New Project] 창에서

More information

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

gnu-lee-oop-kor-lec10-1-chap10

gnu-lee-oop-kor-lec10-1-chap10 어서와 Java 는처음이지! 제 10 장이벤트처리 이벤트분류 액션이벤트 키이벤트 마우스이동이벤트 어댑터클래스 스윙컴포넌트에의하여지원되는이벤트는크게두가지의카테고리로나누어진다. 사용자가버튼을클릭하는경우 사용자가메뉴항목을선택하는경우 사용자가텍스트필드에서엔터키를누르는경우 두개의버튼을만들어서패널의배경색을변경하는프로그램을작성하여보자. 이벤트리스너는하나만생성한다. class

More information

Microsoft PowerPoint - 14주차 강의자료

Microsoft PowerPoint - 14주차 강의자료 Java 로만드는 Monster 잡기게임예제이해 2014. 12. 2 게임화면및게임방법 기사초기위치 : (0,0) 아이템 10 개랜덤생성 몬스터 10 놈랜덤생성 Frame 하단에기사위치와기사파워출력방향키로기사이동아이템과몬스터는고정종료버튼클릭하면종료 Project 구성 GameMain.java GUI 환경설정, Main Method 게임객체램덤위치에생성 Event

More information

Contents v 학습목표 뷰와레이아웃에대해이해하고, 레이아웃을활용, 관리하는여러가지기법들에대하여알아본다. v 내용 뷰 (View) 리니어레이아웃 (Linear Layout)

Contents v 학습목표 뷰와레이아웃에대해이해하고, 레이아웃을활용, 관리하는여러가지기법들에대하여알아본다. v 내용 뷰 (View) 리니어레이아웃 (Linear Layout) 레이아웃 (Layout) 안드로이드프로그래밍정복 (Android Programming Complete Guide) Contents v 학습목표 뷰와레이아웃에대해이해하고, 레이아웃을활용, 관리하는여러가지기법들에대하여알아본다. v 내용 뷰 (View) 리니어레이아웃 (Linear Layout) v 뷰의계층 안드로이드응용프로그램의화면을구성하는주요단위인액티비티는화면에직접적으로보이지않으며,

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

슬라이드 1

슬라이드 1 사용자인터페이스 (II) 시작하면서 2 목차 리스트뷰 : 어댑터, 어댑터뷰, 대화창 메뉴 리스트뷰 - 어댑터 Adapter 4 배열, XML 파일, 데이터베이스에서다양한종류의값을읽어오는공통의인터페이스 선택위젯에게데이터를제공, 각데이터항목들을위젯내부에표시하는위젯클래스로의변홖수행 사용자인터페이스인뷰와데이터소스를연결 Data Source: Array, XML, Database

More information

이것은리스트뷰의 setadapter 메소드에잘표현되어있습니다. setadapter 는리스트뷰에사용할데이터객체를넘겨주는메소드입니다. 일반적으로생각한다면 ArrayAdapter 객체를생성하여사용할데이터를저장할것이고데이터가저장된 ArrayAdapter 객체를 setadapt

이것은리스트뷰의 setadapter 메소드에잘표현되어있습니다. setadapter 는리스트뷰에사용할데이터객체를넘겨주는메소드입니다. 일반적으로생각한다면 ArrayAdapter 객체를생성하여사용할데이터를저장할것이고데이터가저장된 ArrayAdapter 객체를 setadapt 1. 리스트뷰의구조 리스트뷰는어떤데이터그룹에대한각각의정보들을항목별로출력시키고사용자에게원하는항목을검색하거나선택할수있도록해주는컨트롤객체입니다. 그래서다른컨트롤처럼정해진형태의정보를저장하는것이아니기때문에리스트뷰가데이터를직접관리하기는힘들었을것입니다. 그래서효과적인데이터관리를위해 "ArrayAdapter" 라는클래스가추가되었고리스트뷰는이클래스를이용해서사용자가지정한데이터에접근하도록구현되어있습니다.

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Application Framework 어플리케이션프레임워크 발표자 : 김준섭 이문서는나눔글꼴로작성되었습니다. 다운받기 목차 Application Framework. 1. 통지관리자 (Notification Manager) 2. 리소스관리자 (resource manager) 3. 레이아웃인플레이터매니저 (Layout Inflater Manager) Notification

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

Daum 카페

Daum 카페 인쇄하기 인쇄 [22 장 ] 프래그먼트 (1/8) (20140815 완료 ) 책에담지못한장들 슈퍼성근 조회 326 2014/08/10 22:38:46 주의 : 소스내용중 "0nClick", "0nStart" 함수명첫글자가숫자 0 인것은오타가아닙니다. 다움게시판은 o n C l i c k 라는글을입력할수없기때문에어쩔수없이 영문소문자 o 를숫자 0 으로대체하였습니다.

More information

5장.key

5장.key JAVA Programming 1 (inheritance) 2!,!! 4 3 4!!!! 5 public class Person {... public class Student extends Person { // Person Student... public class StudentWorker extends Student { // Student StudentWorker...!

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

헬로, 안드로이드 13 주차 SQL 활용하기 (2) 강대기동서대학교컴퓨터정보공학부

헬로, 안드로이드 13 주차 SQL 활용하기 (2) 강대기동서대학교컴퓨터정보공학부 헬로, 안드로이드 13 주차 SQL 활용하기 (2) 강대기동서대학교컴퓨터정보공학부 학습목표 데이터바인딩을통해데이터소스에해당하는데이터베이스와뷰에해당하는액티비티를연결한데이터베이스응용프로그램을작성할수있다. 안드로이드내의다른어플리케이션의데이터에접근하기위해제공되는 ContentProvider 를사용할수있다. 자신의어플리케이션에서다른어플리케이션으로의데이터제공을위한 ContentProvider

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

슬라이드 1

슬라이드 1 전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 13. HTML5 위치정보와드래그앤드롭 SVG SVG(Scalable Vector Graphics) 는 XML- 기반의벡터이미지포맷 웹에서벡터 - 기반의그래픽을정의하는데사용 1999 년부터 W3C 에의하여표준 SVG 의장점 SVG 그래픽은확대되거나크기가변경되어도품질이손상되지않는다. SVG 파일에서모든요소와속성은애니메이션이가능하다. SVG 이미지는어떤텍스트에디터로도생성하고편집할수있다.

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

Microsoft PowerPoint App Fundamentals[Part2].pptx

Microsoft PowerPoint App Fundamentals[Part2].pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 애플리케이션기초 Part 1 애플리케이션컴포넌트 액티비티와태스크 프로세스와쓰레드 컴포넌트생명주기 Part 2 2 태스크는명시적으로정의 / 선언하는것이아니라, 주어진목적을위해 현재수행되고있는액티비티들의스택이다. 예를들어, 어떤액티비티가특정위치상의시가지지도를보여주고자한다하자. 해당액티비티는안드로이드에이미존재하는맵뷰어액티비티를실행

More information

Microsoft PowerPoint App Fundamentals[Part1].pptx

Microsoft PowerPoint App Fundamentals[Part1].pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 2 HangulKeyboard.apkapk 파일을다운로드 안드로이드 SDK 의 tools 경로아래에복사한후, 도스상에서다음과같이 adb 명령어수행 adb install HangulKeyboard.apk 이클립스에서에뮬레이터를구동 에뮬레이터메인화면에서다음과같이이동 메뉴버튼 설정 언어및키보드

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt AWT 컴포넌트 (1) 1. AWT 패키지 2. AWT 프로그램과이벤트 3. Component 클래스 4. 컴포넌트색칠하기 AWT GUI 를만들기위한 API 윈도우프로그래밍을위한클래스와도구를포함 Graphical User Interface 그래픽요소를통해프로그램과대화하는방식 그래픽요소를 GUI 컴포넌트라함 윈도우프로그램만들기 간단한 AWT 프로그램 import

More information

Microsoft PowerPoint - Android_DDMS.pptx

Microsoft PowerPoint - Android_DDMS.pptx Suan Lee http://www.webdizen.net 1 목차 1. DDMS 란? 2. DDMS 실행방법 3. DDMS 주요기능 4. DDMS 프로세스다루기 5. DDMS 파일탐색기다루기 6. DDMS 에뮬레이터제어하기 7. 응용프로그램로깅기능다루기 8. 에뮬레이터나기기의화면캡쳐 2 DDMS(DalvikDalvik Debug Monitor Service)

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$

More information

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public Chapter 9 Lab 문제정답 1. public class Circle private double radius; static final double PI=3.141592; // PI 이름으로 3.141592 로초기화된정적상수 (1) public Circle(double r) radius = r; (2) public double getradius() return

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

TipssoftAppActivity.java // 기본소스파일 main.xml // 배치와구성에관련된리소스파일 string.xml // 프로그램에서사용할문자열에관련된리소스파일 컴파일을하고나면 r.java 라는소스파일이하나추가되는데이파일은리소스파일을소스파일에서이용할수있도

TipssoftAppActivity.java // 기본소스파일 main.xml // 배치와구성에관련된리소스파일 string.xml // 프로그램에서사용할문자열에관련된리소스파일 컴파일을하고나면 r.java 라는소스파일이하나추가되는데이파일은리소스파일을소스파일에서이용할수있도 1. " 소스파일 " 과 " 리소스파일 " 에대하여 소스파일은우리가흔히알고있듯이프로그래밍언어를사용해서자신이만들고자하는프로그램을구현한파일입니다. 예전에작성된프로그램들은소스파일만으로이루어진프로그램도많았습니다. 하지만, 프로그램환경이점점더복잡해지고사용자인터페이스가다양해지면서인터페이스구성을서술식으로나열해서소스파일에표현하는것은한계가왔고작업효율을떨어트리게되어해결책이필요하게되었습니다.

More information

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드] Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

슬라이드 1

슬라이드 1 3 장안드로이드프로그램의 첫걸음 시작하면서 2 목차 프로젝트의생성하기 프로젝트파읷및소스코드이해 코드로문자열표시하기 문자열출력프로그램응용 프로젝트에새로운파읷 / 속성추가 프로젝트생성하기 프로젝트생성하기 4 < 실습 5-1>: Android 프로젝트의생성과에뮬레이터구동 (1)[ 그림 3-1](a) 처럼안드로이드프로젝트생성아이콘클릭 [ 그림 3-1](b) 처럼이클립스에서메뉴선택

More information

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

var answer = confirm( 확인이나취소를누르세요.); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write( 확인을눌렀습니다.); else { document.write( 취소를눌렀습니다.); 자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트

More information

01-OOPConcepts(2).PDF

01-OOPConcepts(2).PDF Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)

More information

UI VoC Process 안

UI VoC Process 안 Android Honeycomb UI design guide Bryan Woo (pyramos@gmail.com) Bryan Woo (pyramos@gmail.com) Table of Contents Announcement Basic Screen Portrait Screen Action Bar System Bar Main Menu Options Menu Small

More information

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0) 02. 처음으로만드는안드로이드응용프로그램 IT CookBook, 안드로이드프로그래밍 학습목표 안드로이드응용프로그램의기본적인작성법을익힌다. AVD 의명칭을배운다. 안드로이드프로젝트의구성을파악한다. Page 2 차례 Page 3 1. 처음만드는 [Hello Android] 프로그램 Page 4 1. 처음만드는 [Hello Android] 프로그램 [ 실습 2-1]

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력

More information

Microsoft PowerPoint Application Resources[Part1](2.0h).pptx

Microsoft PowerPoint Application Resources[Part1](2.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Concept of Resources Providing Resources Accessing Resources Resource Types 2 지금까지우리가이미보아온, 사용한 res/ 디렉토리에관한것임 리소스란문자열 (string), 이미지, 아이 콘, 레이아웃등의외부 (external)

More information

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2 03 장. 테두리여백지정하는속성 이번장에서는테이블, 레이어, 폼양식등의더예쁘게꾸미기위해서 CSS 를이용하여 HTML 요소의테두리속성을바꾸어보자. 이장에서다룰내용 1 2 3 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2 01. 테두리를제어하는스타일시트 속성값설명 border-width border-left-width

More information

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 19 장배치관리자 이번장에서학습할내용 배치관리자의개요 배치관리자의사용 FlowLayout BorderLayout GridLayout BoxLayout CardLayout 절대위치로배치 컨테이너안에서컴포넌트를배치하는방법에대하여살펴봅시다. 배치관리자 (layout manager) 컨테이너안의각컴포넌트의위치와크기를결정하는작업 [3/70] 상당히다르게보인다.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25

REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25 REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25 문서개정내역 변경일버전변경내용비고 2014.06.30 1.0.0 최초작성 2014.09.30 1.1.0 개인정보항목변경, 개인정보이용약관기능추가 2014.12.01 1.2.0 Proguard 추가 2014.12.16 1.2.0 Android Studio 기준샘플및가이드추가

More information

구글안드로이드프로그래밍액티비티, 인텐트수신자, 그리고서비스 안드로이드애플리케이션의구성요소에는액티비티, 인텐트수신자, 서비스, 컨텐트제공자가있다. 이번호에서는사용자인터페이스를위한액티비티와백그라운드서비스를위한인텐트수신자, 그리고서비스의라이프사이클과활용법에대해살펴보도록하자.

구글안드로이드프로그래밍액티비티, 인텐트수신자, 그리고서비스 안드로이드애플리케이션의구성요소에는액티비티, 인텐트수신자, 서비스, 컨텐트제공자가있다. 이번호에서는사용자인터페이스를위한액티비티와백그라운드서비스를위한인텐트수신자, 그리고서비스의라이프사이클과활용법에대해살펴보도록하자. 구글안드로이드프로그래밍액티비티, 인텐트수신자, 그리고서비스 안드로이드애플리케이션의구성요소에는액티비티, 인텐트수신자, 서비스, 컨텐트제공자가있다. 이번호에서는사용자인터페이스를위한액티비티와백그라운드서비스를위한인텐트수신자, 그리고서비스의라이프사이클과활용법에대해살펴보도록하자. 6 연재순서 1 회 2008. 1 애플리케이션구조분석 2 회 2008. 2 GUI 설계,

More information

콘텐츠 PowerPoint 디자인

콘텐츠 PowerPoint 디자인 서비스 / 스레드 /DB 최 민 서비스 Service 안드로이드는서비스에게비활성액티비티보다높은우선순위부여 시스템이리소스를필요로할때서비스가종료될가능성은적음 서비스가종료되었더라도리소스가충분해지면즉시재시작 GUI 없이실행 Activity, Broadcast receiver와같이애플리케이션프로세스의메인쓰레드내에서실행 좋은반응성을가지려면시간이많이드는처리 ( 네트워크조회등

More information

슬라이드 1

슬라이드 1 4 장액티비티와리소스 시작하면서 2 목차 액티비티이해 리소스이해 리소스응용 애플리케이션디버깅 액티비티이해 애플리케이션개념 4 Java 언어로작성 자싞의리눅스프로세스내에서실행 각프로세스는자싞의자바가상머싞을가짐 각프로세스는다른프로세스와격리되어실행 짂입점 (entry point) 이없고읶텎트 (intent) 에의하여컴포넌트홗성화 고유한리눅스 ID 가부여 기본적으로애플리케이션을구성하는파읷들은해당사용자와해당애플리케이션에게맊접귺허용

More information

슬라이드 1

슬라이드 1 Android App 개발기초 & Activity, Intent 세미나 2012. 03. 26 ING 팀여상권, 이용균, 최상욱, 권지해 목차 프로젝트생성과정설명 안드로이드동작, 구조설명 Activity 설명 Intent 설명 질문 1 프로젝트생성과정설명 1. Eclipse의메뉴바에서 File 선택 2. New선택후 Android Project 선택 3. Project

More information