<안드로이드/Android> 앱위젯(AppWidget) PART2

Posted by 앱해피
2015. 6. 19. 11:59 안드로이드 이론

 

AppWidgetProviderInfo 메타데이터 추가하기.

 

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를 생성하는 방법부터

 

시작해서 이어나가도록 하겠습니다 ^_^

 

도움이 되셨다면 추천 부탁드립니다!!