<안드로이드/Android> 앱위젯(AppWidget) PART2
AppWidgetProviderInfo는 AppWidget과 관련된 정보를 정의할 때 사용된다.
ex) 최소 레이아웃 크기, 사용될 레이아웃 리소스, AppWidget이 업데이트 되는 주기
AppWidgetProviderInfo는 <appwidget-provider>라는 단일 요소를 사용해서 XML 리소스 형태로 정의되어야 하며, 해당 파일을 /res/xml 폴더에 저장해야 한다.
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="40dp"
android:minHeight="40dp"
android:updatePeriodMillis="86400000"
android:previewImage="@drawable/preview"
android:initialLayout="@layout/example_appwidget"
android:configure="com.example.android.ExampleAppWidgetConfigure"
android:resizeMode="horizontal|vertical"
android:widgetCategory="home_screen|keyguard"
android:initialKeyguardLayout="@layout/example_keyguard">
</appwidget-provider>
<appwidget-provider> 속성에 관한 정보를 알아보자.
android:minWidth와 android:minHeight 속성
기본적으로 사용될 App Widget의 최소 공간을 나타낸다. (앱 위젯을 추가할 때 기본으로 설정되어 있는 크기) 스마트폰에 기본적으로 존재하는 홈 스크린 어플리케이션은 기본적으로 일정한 간격으로 구성된 격자에 App Widget을 배치하도록 설계되어 있다.
android:minResizeWidth와 android:minResizeHeight 속성
AppWidget의 가질 수 있는 최소 크기를 나타낸다. 이 속성의 값보다 AppWidget 작게 만드는 것은 허용되지 않는다.
android:updatePeriodMillis 속성
얼마나 자주 App Widget 프레임워크가 AppWidgetProvider에게 업데이트를 요청할 것인지를 정의한다.(AppWidgetProvider는 onUpdate() 콜백 메소드를 통해 AppWidget을 업데이트 한다.)
실제 업데이트 주기는 이 속성에 정의된 값을 완전히 지키지는 못한다.(약간의 오차가 발생된다.)
AppWidget을 설계할 때, 배터리 소모량을 줄이기 위해 우리는 AppWidget 업데이트를 최소한으로 해야만 한다.
아니면 유저로 하여금 어떤 주기로 업데이트를 할 것인가 조정할 수 있도록 만들어야 한다.
android:initialLayout 속성
App Widget 레이아웃을 정의한 레이아웃 리소스를 나타낸다.
android:configure 속성
사용자가 App Widget을 추가할 때, 실행되는 Activity를 나타낸다. 이 Activity를 통해서 현재 추가하는 App Widget과 관련된 여러가지 설정을 할 수 있다. android:configure 속성은 있어도 되고 없어도 된다.
android:previewImage 속성
App Widget이 홈 화면에 추가되었을 때, 해당 App Widget이 어떻게 유저에게 보일 것인지 미리 보여주는 역할을 한다. 이 속성값을 정의하지 않으면, 아마도 해당 어플리케이션의 아이콘 모양을 보게 될 것이다.
android:resizeMode 속성
위젯의 크기 변경과 관련된 설정을 할 때 사용된다. 이 속성을 사용하면 홈 스크린에 추가한 App Widget의 사이즈를 변경할 수 있게 된다. 홈 스크린에 위젯을 추가하고, 위젯을 오랫동안 클릭할 때, 위젯의 크기를 변경할 수 있다. resizeMode 속성은 "horizontal", "vertical" 그리고 "none"이라는 속성값을 포함한다. 만약 위젯을 수평, 수직 방향으로 사이즈를 조정할 수 있게 하기 위해서는 "horizontal|vertical"이라고 입력하면 된다.
Part3에는 AppWidgetProvider Class를 생성하는 방법부터
시작해서 이어나가도록 하겠습니다 ^_^
도움이 되셨다면 추천 부탁드립니다!!