読者です 読者をやめる 読者になる 読者になる

CORDEA blog

Programming及びFedora21等のLinux OSのことが多めです。

EclipseでAndroidウィジェットを作成する。

Eclipse Linux

はじめに

この記事は
EclipseAndroid SDKはとりあえず入れられたが、Androidウィジェットの作成の仕方が分からない。」
Androidアプリは作成経験があるが、ウィジェットは作成したことがない。」
といった方を対象に書いております。

Javaどころか、プログラミングなんてやってことがない。」
という方にとっては不親切に感じられることでしょう。
また、今回はEclipseAndroid SDKおよび関連するソフトウェアのインストール方法については記述しておりません。

インストール方法等については非常に詳しく書かれている記事が他にありますので、そちらをご参照ください。



また、一口にEclipseAndroidウィジェットを作成するといっても、EclipseやADTのバージョンによって作成方法は微妙に変わります。
まずはバージョン等が同じか確認し、自分の環境により近い方法を探すことをお勧めします。

バージョン等

  • Eclipse Kepler Service Release 1
    • Eclipse Platform 4.3.1.v20130911-1000
  • ADT(Android Development Toolkit) 22.3.0.v201310242005-887826
  • Android SDK Manager 22.3

テスト端末

手順

新しくプロジェクトを作成します。

f:id:CORDEA:20140206175435p:plain


f:id:CORDEA:20140206175525p:plain


次に

  • アプリケーション名
  • パッケージ名

の2つを入力します。
アプリケーション名は何でもかまいません。
パッケージ名はここではjp.cordeaとなっていますが、com.exampleのままでも結構です。


f:id:CORDEA:20140206175542p:plain

アクティビティの作成のチェックをはずして完了してください。

f:id:CORDEA:20140206175546p:plain



次のような画面になったら、Javaクラスを作成します。

f:id:CORDEA:20140206175936p:plain


私の場合は名前をSampleWidgetとしていますが、分かりやすいようにSampleWidgetActivity等としても良いでしょう。

スーパークラスには
android.appwidget.AppWidgetProvider
と入力して完了してください。

f:id:CORDEA:20140206180031p:plain


次にレイアウトのxmlファイルを作成します。

f:id:CORDEA:20140206180511p:plain

f:id:CORDEA:20140206180958p:plain

f:id:CORDEA:20140206180522p:plain

main.xmlが出来たら、今回は例としてLarge Textのフォーム・ウィジェットを貼り付けます。

f:id:CORDEA:20140206180537p:plain




ウィジェットの設定をするため、もう一つxmlファイルを作成しましょう。

今度のxmlファイルはxmlフォルダ中に作成するため、まずはxmlフォルダの作成から行います。

f:id:CORDEA:20140206180810p:plain

f:id:CORDEA:20140206180909p:plain

xmlフォルダが作成できたら、xmlファイルを作成しましょう。

f:id:CORDEA:20140206180950p:plain

f:id:CORDEA:20140206180958p:plain

f:id:CORDEA:20140206181006p:plain

作成できたら、以下の項目について記述してください。
こちらのパラメーターは作るウィジェットに応じて変えてください。

  • Attributes for AppWidget Provider
    • Min width: 72dp
    • Min height: 72dp
    • Update period millis: 0
    • Initial layout: @layout/main

最後に、AndroidManifest.xmlを編集しましょう。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="jp.cordea.samplewidget"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        
        <receiver
            android:name="jp.cordea.samplewidget.SampleWidget"
            android:label="SampleWidget" >
            
            <intent-filter>
                <action
                    android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/samplewidget" />
            
        </receiver>
    </application>

</manifest>

f:id:CORDEA:20140206181734p:plain


それでは動作確認をしてみます。

f:id:CORDEA:20140206181817p:plain

f:id:CORDEA:20140206181830p:plain


端末上でこのように表示されれば、成功です。
具体的にウィジェットに機能を追加したい、といった場合はJavaのソースファイルに処理を記述する必要があります。


f:id:CORDEA:20140206182135p:plain,h400f:id:CORDEA:20140206182149p:plain,h400


最後に

いかがだったでしょうか。
今回は説明を殆どせず、作成方法だけを記述する形となりました。
そのため、一度もAndroidのアプリを作成したことのない方、Eclipseに馴染みのない方にとっては意味が分からなかったかもしれません。

参考には、いくつか参考になる記事やサイトも載せてありますので、あわせてご参照ください。