[제2회] "안드로이드로 위젯을 만들고 싶다"는 이유로 공식 문서의 자원 폴더 편<전편>을 읽어야 한다.
오류가 발견되면 댓글로 남겨주세요.
두 번째 애플릿을 만들 때 필요한
1. 매니페스트의 선언
2. 애플릿 메타데이터(AppWidgetProviderInfo)
에 관하여 나는 써 내려갈 것이다.
Manifest에서 부품 선언
Android Manifest는 애플릿AppWidgetProvider 상속 클래스를 제공합니다.xml로 선언해야 합니다.<application>
아래에 설명<receiver> ... </receiver>
.
서법의 예
<receiver android:name="ExampleAppWidgetProvider" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/example_appwidget_info" />
</receiver>
<receiver android:name="ExampleAppWidgetProvider" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/example_appwidget_info" />
</receiver>
receiver
이 요소에는
android:name
의 속성이 필요합니다.android:name
에서는 애플릿에서 사용하는 AppWidgetProvider 상속 클래스가 포함된 폴더를 지정합니다.intent-filter
이 요소는 설명이 필요합니다
<action>
.<action>
에서는 AppWidgetProvider가 수신 브로드캐스트ACTION_APPWIDGET_UPDATEandroid:name
를 지정합니다.ACTION_APPWIDGET_UPDATE
이외의 방송은 지정할 수 없습니다.참조: This is the only broadcast that you must explicitly decrare.
AppWidgetManager 필요에 따라 애플릿의 AppWidgetProvider에 자동으로 브로드캐스트를 보냅니다.
meta-data
AppWidgetProviderInfo 객체가 됩니다.여기에 다음 두 가지 속성을 설정합니다.
android.appwidget.provider
가 값으로 설정됩니다.AppWidgetProviderInfo의 설명자로 데이터를 사용하는 것을 의미합니다.res/xml/
값을 설정해야 합니다.AppWidgetProviderInfo 메타데이터 추가
AppWidgetProviderInfo는 애플릿과 관련된 성질을 정의했다.예로 들다
- 부품의 최소 크기
- 부품에 사용되는 배치
- 부품 업데이트 빈도
- 애플릿의 configuration Activity
위치:
@xml/ファイル名
에 AppWidgetProviderInfo와 관련된 폴더를 만듭니다.
서법의 예
<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">
</appwidget-provider>
res/xml/
아래의 속성 총결산.
minWidth / minHeight
<appwidget-provider>
의 값은 애플릿의 최소 크기와 관련된 기본 크기의 속성입니다.
기본 메인 화면에서 위젯은width/height 속성을 가진 격자형 창을 기반으로 배치됩니다.
위젯의width/height 값이 격자 칸 크기에 맞지 않으면 가장 가까운 구역 크기로 조정하여 레이아웃합니다.
부품 크기 가이드.
4x4 미만의 작은 영역에서 부품을 작성하면 모든 장치에서 해당 부품을 사용할 수 없습니다.
minResizeWidth / minResizeHeight
애플릿을 정의하는 절대 최소 치수로 사용할 수 있는 값minWidth / minHeight
도 있습니다.이것들은
이것은 애플릿이 너무 작아서 사용할 수 없는 사이즈와 관련된 값으로 설정minResizeWidth / minResizeHeight
의 값을 통해 사용자가 설정한 사이즈minResizeWidth / minResizeHeight
보다 사이즈를 작게 할 수 있다.
updatePeriodMillis
애플릿이 AppWidgetProvider 업데이트 요청을 보내는 주파수와 관련된 속성입니다.호출 방법 onUpdate()로 요청을 보냅니다.minWidth / minHeight
에 설정된 시간은 실제 업데이트 요청이 있을 수 없습니다.
권장 업데이트 빈도
또한 업데이트 요청을 보내는 주파수는 배터리 소모를 억제하는 의미에서 한 시간에 한 번 정도 제어하는 것이 좋다.
15분 간격으로 설치된 부품을 업데이트하려는 사용자가 있으면 하루에 한 번 업데이트하면 좋다고 생각하는 사용자가 있을 수 있으므로 업데이트 빈도를 설정하는 것을 추천합니다.
AlarmManager를 사용하여 업데이트
장치가 부품을 업데이트할 때 절전 모드인 경우 장치가 시작되고 업데이트됩니다.
이 기능은 한 시간에 한 번 정도면 배터리 소모에 거의 영향을 주지 않지만, 더 높은 주파수로 업데이트되면 배터리 소모를 앞당길 수 있다.
업데이트 빈도가 많아지거나 일정 간격으로 업데이트할 필요가 없으면 updatePeriodMillis
대신 updatePeriodMillis
장치를 시작할 때만 업데이트할 수 있습니다.
AlarmManager를 사용하여 AppWidgetProvider 상속 클래스의 Intent와 함께 경보를 설정하여 일반적인 위젯 업데이트를 대체할 수 있습니다.
이때, alarm type 설정ELAPSED_REALTIME 또는RTC.AlarmManager
에 0updatePeriodMillis
을 설정하는 것을 잊지 마세요.
initialLayout
부품에 사용할 레이아웃 리소스를 설정합니다."0"
의 값입니다.
configure
사용자가 부품을 추가할 때 시작하는 작업을 정의합니다.
부품을 추가할 때 Activity를 시작하여 부품의 초기 설정을 수행할 수 있습니다.
더 자세한 정보는 Creating an App Widget Configuration Activity을 참고했습니다.
previewImage
부품을 구성할 때 미리 볼 수 있는 속성을 제공합니다.사용자가 선택한 부품의 목록에 나열됩니다.설정"@layout/widget_layout"
이 없으면 적용된 아이콘이 대체적으로 표시됩니다.
AppWidgetProviderInfo의 previewImage
는 previewImage
의 AndroidManifest.xml
중의 <receiver>
와 일치한다.
더 자세한 정보는 Setting a Preview Image을 참고했습니다.
Android3.0부터 설치합니다.
resizeMode
부품 크기 조정 시 규칙을 정의합니다.개발자는 android:previewImage
를 사용하여 위젯의 메인 화면 크기를 조정할 수 있습니다.
사용자가 긴 키를 눌러 부품 크기를 조정합니다.크기 조정 프로세서가 나타나면 프로세서를 드래그하여 부품의 크기를 수직 방향에 맞게 조정합니다.이 크기는 메인 화면의 격자에 따라 조정됩니다.resizeMode
설정 가능한 값
- "horizontal"
- "vertical"
- "none"
의 3가지.
종횡으로 크기를 조절할 수 있도록.
- "horizontal|vertical"
설정
Android3.1부터 설치합니다.
minResizeHeight / minResizeWidth
로 이동합니다.
widgetCategory
resizeMode
애플릿이 주 화면minWidth / minHeight
과 잠금 화면widgetCategory
에 표시될 수 있는지 설정할 수 있습니다.
잠금 화면에 설치된 부품은 Android 5입니다.위와 같은 버전에서는 애플릿이 메인 화면에만 설치될 수 있습니다.
다음은 부품 레이아웃 리소스를 작성한 기사입니다.
Reference
이 문제에 관하여([제2회] "안드로이드로 위젯을 만들고 싶다"는 이유로 공식 문서의 자원 폴더 편<전편>을 읽어야 한다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rild/items/43881b44a356d9888aa1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<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">
</appwidget-provider>
Reference
이 문제에 관하여([제2회] "안드로이드로 위젯을 만들고 싶다"는 이유로 공식 문서의 자원 폴더 편<전편>을 읽어야 한다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rild/items/43881b44a356d9888aa1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)