안드로이드 112

안드로이드 - DatePicker 위젯을 이용한 날짜 입력 받기

사용자로부터 날짜를 쉽게 입력 받으려면 DatePicker 위젯을 사용한다. 년, 월, 일을 각각의 버튼으로 보여주고 아래위의 증감 버튼을 눌러 값을 조정한다. 그리고 크기를 변경해봐야 무의미해서 wrap_content로 지정한다. 속성 설명 startYear, endYear 선택 가능한 년도의 범위를 지정한다. minDate, maxDate 선택 가능한 날짜의 범위를 지정한다. calendarViewShown 달력을 보여줄 것인지를 지정한다. 디폴트는 true이다. spinnersShown 날짜를 선택하는 스피너를 보여줄 것인가를 지정한다. 날짜를 설정하거나 조사할 때는 다음 메소드를 호출한다. void updateDate(int year, int monthOfYear, int dayOfMonth) i..

안드로이드 - 시간을 더욱 세련되게 표현하는 시계 위젯 만들기

안드로이드에서 제공하는 AnalogClock은 시간을 좀더 멋있게 표현할 수 있는 위젯이다. 레이아웃에 배치하면 알아서 잘 동작하기 때문에 예제는 간단하다. 다음은 XML파일이다. AnalogClock과 DigitalClock 위젯만 배치했다. activity_test_clock.xml ClockTest.java package com.example.ch13_clocktest; import android.app.Activity; import android.os.Bundle; public class ClockTest extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan..

안드로이드 - 날짜 시간 나타내기

현재 날짜와 시간을 구하는 가장 쉬운 방법은 System의 다음 정적 메소드를 사용하는 것이다. static long currentTimeMillis() 이 메소드는 현재 시간값을 정수 하나로 리턴하는데 이 값은 1970년 1월 1일 자정을 기준으로 한 1/1000초 단위 경과시간이다. 에폭 타임 이라고도 한다. 그리고 자바에서 날짜를 구하는 방법은 Date 클래스를 이용하는 방법인데 날짜끼리의 계산하는 기능이 없어서 사용이 권장되지 않는다. Date(int year, int month, int day [, int hour, int minute, int second]) Date(long milliseconds) 실제 프로젝트는 Caldendar 클래스의 서브클래스인 GregorianCalendar를 사용..

안드로이드 - 프로그래스바의 확장형 시크바 (SeekBar) 만들기

프로그래스바는 현재 위치를 보여주기만 하지만 시크바는 사용자가 직접 값을 조정할 수 있다. 사용자가 시크바를 조정하면 이때마다 OnSeekBarChangedListener 인터페이스의 다음 메서드가 호출된다. void onStartTrackingTouch(SeekBar seekBar) void onStopTrackingTouch(SeekBar seekBar) void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) 윗 메소드중에 가장 실용적인 것은 onProgressChaged인데 여기서 변경된 위치에 맞게 대상 값을 조정한다. progress 인수는 현재 위치값이며 fromUser인수는 사용자가 직접 드래그해서 변한 것인지 아니면 ..

안드로이드 - 실행 중에 메뉴 편집

메뉴가 열릴때마다 onPrepareOptionsMenu 메소드가 호출되는데 여기서 메뉴를 원하는대로 편집한다. 메뉴를 추가할 때는 add 메소드를 사용하며 삭제, 편집할 때는 다음 메소드를 호출한다. void removeItem(int id) void clear() MenuItem findItem(int id) MenuItem getItem(int index) 바로 실습에 들어가보자. menu_modify.xml 여기서 checkableBehavior 속성 중 all은 모든 항목을 개별적으로 선택할 수 있고 single은 한개만 선택할 수 있다는것을 의미한다. 다음은 화면의 버튼 한 개를 정의하기 위한 activity_menu_modify.xml 파일입니다. 다음은 MenuModify.java 파일입니다..

안드로이드 - 프로그래스바(ProgressBar) 만들기

프로그래스바는 작업의 진행 정도를 표시하거나 또는 작업이 진행 중이라는 것을 사용자에게 보여줍니다. 프로그램 설치나 네트워크 다운로드 작업 등에 흔히 사용되며 진행 과정을 보여줍니다. 범위는 max 속성으로, 초기값은 progress 속성으로 지정합니다. void setProgress(int progress) //첫번째 진행상태 값 지정 void setSecondaryProgress(int secondaryProgress)//두번째 진행상태 값 지정(흐린색으로 채색) void incrementProgressBy(int diff)//첫번째 프로그래스의 상대적으로 이동할 양 지정 void incrementSecondaryProgressBy(int diff) //두번째 프로그래스의 상대적으로 이동할 양 지정 ..

안드로이드 - 버튼에 팝업메뉴 만들기

팝업메뉴는 컨텍스트 메뉴와 용도가 동일하지만 약간 더 업그레이드된 버전이라고 생각하시면 되겠습니다. 먼저 생성자는 다음과 같다. PopupMenu(Context context, View anchor) 두번째 인수는 팝업 메뉴를 표시할 앵커 뷰를 지정함. 앵커 뷰 아래에 팝업 메뉴가 나타난다. 메뉴와 메뉴 전개자는 다음 메소드를 사용한다 Menu getMenu() MenuInflater getMenuInflater() Menu의 add 메소드로 빈 메뉴에 항목을 추가 할 수도 있고 이전에 해본 방법인 XML로 메뉴를 정의하고 전개자의 inflater 메소드로 메뉴를 만들 수 있다. void show() void dismiss() 위 두 메소드는 메뉴를 보이거나 숨긴다. void setOnMenuItemCl..

안드로이드 - 뷰객체를 롱터치하면 나타나는 컨텍스트 메뉴

컨텍스트 메뉴는 어떤 컴포턴트를 롱 터치를 하게되면 나오는 메뉴를 말한다. 컨텍스트 메뉴를 달고 싶은 뷰는 다음 메소드를 이용해서 등록한다. void Activity.registerForContextMenu(View view) 보통 액티비티의 onCreate 메소드에서 등록하며 여러 개의 뷰를 동시에 등록할 수도 있다. 등록해 놓으면 View.OnCreateContextMenuListener가 액티비티 자신으로 등록되고 뷰 위에서 롱 클릭이 검출되면 다음 메서드를 호출한다. void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) v가 롱클릭이 발생한 뷰를 뜻한다. 컨텍스트 메뉴의 항목을 선택하면 다음 ..

안드로이드 - XML로 메뉴 정의하기

2. XML로 메뉴정의 하기 메뉴가 아주 많을경우 코드로 일일이 속성을 설정하는 것은 상당히 힘드므로 하나의 XML파일로 작성하는 것이 훨씬더 유리하다. 메뉴의 모양을 정의하는 것은 res/menu 폴더에 작성한다. 이클립스가 만들어준 xml파일에 메뉴 항목 하나에 대응되는 엘리먼트나 항 목의 그룹에 해당하는 엘리먼트를 채워 넣고 속성을 적당히 편집하여 메 뉴를 디자인한다. 속성 설명 id 코드에서 메뉴항목을 칭할 이름을 지정한다 title 메뉴 항목의 제목 문자열이다. titleCondensed 제목이 너무길어 화면에 표시하기 어려울때 대신 사용되는 짧은 제목 icon 메뉴 항목에 같이 표시할 이미지 지정 onClick 메뉴 항목 선택시 호출할 메서드 showAsAction 항목을 액션바에 배치하는 방..

안드로이드 - 간단한 옵션 메뉴 만들어 보기

1. 옵션메뉴 스마트폰의 메뉴버튼을 누르면 나타나는 Menu가 옵션메뉴이다. 주로 기능이나 설정 등의 명령을 배치한다. 메뉴는 다음 콜백 메소드에서 작성한다. boolean onCreateOptionsMenu(Menu menu) 그리고 메뉴를 추가할때는 다음 메소드를 사용한다. MenuItem add(int groupId, int itemId, int order, CharSequence title) MenuItem add(int groupId, int itemId, int order, int titleRes) SubMenu addSubMenu(int titleRes) 1. groupId는 항목의 그룹을 구성할때 사용 2. itemId는 각 메뉴항목 선택시 어떤게 선택됬는지 알아볼때 사용 3. order는..

반응형