[제2회] "안드로이드로 위젯을 만들고 싶다"는 이유로 공식 문서의 자원 폴더 편<전편>을 읽어야 한다.

8517 단어 Androidwidget
이것은 안드로이드의 부품 개발에 관한 보도입니다.공식 문서App Widgets의 번역을 중심으로 글을 쓴다.
오류가 발견되면 댓글로 남겨주세요.
두 번째 애플릿을 만들 때 필요한
1. 매니페스트의 선언
2. 애플릿 메타데이터(AppWidgetProviderInfo)
에 관하여 나는 써 내려갈 것이다.
  • [초회]
  • →제3회 자원 폴더 편<후편>
  • 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
  • intent-filter
  • meta-data
  • 세 가지 요소로 구성되어 있다.

    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:name
  • 메타데이터에 대한 설명.android.appwidget.provider가 값으로 설정됩니다.AppWidgetProviderInfo의 설명자로 데이터를 사용하는 것을 의미합니다.
  • android:resource
  • 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의 previewImagepreviewImageAndroidManifest.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입니다.위와 같은 버전에서는 애플릿이 메인 화면에만 설치될 수 있습니다.
    다음은 부품 레이아웃 리소스를 작성한 기사입니다.

    좋은 웹페이지 즐겨찾기