みなさん、こんにちは。日本システム技研の笠井です。
梅雨で雨がうっとうしい季節、どのようにお過ごしでしょうか?
やはり雨が降っていると、外に出るのが億劫ですね…。
ちょうどいいので、家にいる間、ちょっと勉強してみるのはどうでしょうか?
ということで、今回は、AndroidのWidgetについて調べてみたので書きます。
(こんな記事でもいいのでしょうかね?)
なんでAndroid Widgetの話?
Android8.0(Oreo)で、新しいWidget Apiが追加されて、気になっていたので(今更)。
追加されたのは、アプリ内からウィジェット配置を呼べるというものです。
https://developers-jp.googleblog.com/2017/08/whats-new-for-shortcuts-and-widgets-in.html
今までは、機種やランチャーによって追加方法が異なっている上に、ユーザーが手動で置かないといけなかったため、分かりづらく、あまり使われていなかった感じがしています。
しかし、今回アプリから追加できるようになるので、みんなウィジェットを使うようになるのではないでしょうか?流行る、はずです!
あとは、私、課題とか忘れて、思い出しては、締め切りギリギリになっちゃう人なんで、スマホのホームに直近の締め切り日時をホーム画面に書いておきたいなと思った次第です。
↓イメージはこんな感じです。これをホーム画面に置きたいのです…。
Widgetを作ってみる。
ということでアプリを早速作ってみようと思ったのですが、今までwidgetを作ったことがない初心者なので、Widget作成のサンプルから作ってみることにしました。
① Android Studio を起動
② 新しいプロジェクトを作成。Widgetだけなので「Add No Activity」を選択
③ 「app」を右クリックして「New→Widget→App Widget」を選択
④Widgetの大きさを決めて「Finish」
⑤何もしていないですけど、これでサンプル作成終了です!あとは、起動設定です。
(Activityがない、ウィジェットだけのアプリなのでそのままだと動かせない)
・Edit Configurations → Launch を「Nothing」に変更
⑥ 実行!!
(これはウィジェットだけのサンプルアプリなので、ホーム画面から手動で設置してください。
なんというタイトル詐欺…。サンプルなので許してください。)
ついでに表示画像を変えてみました。
NewAppWidget.java
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
int appWidgetId) {
CharSequence widgetText = context.getString(R.string.appwidget_text);
// Construct the RemoteViews object
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
views.setImageViewResource(R.id.imageView, R.drawable.jsl_logo);
// Instruct the widget manager to update the widget
appWidgetManager.updateAppWidget(appWidgetId, views);
}
おお…簡単…。
30分くらいで出来ました(実装10分 + ビルドエラー解消20分…)。
本題に入ってはないのですが、長くなりそうなので、今回はこの辺で終わります。
実装方法や詳しい説明は、また次回やりたいと思っています。
まとめ
Widgetって意外と簡単に実装できるんですね。初めて知りました。
アプリ連携はまだなので、(こっちが本題)そちらも勉強していきたいと思います。
もともと、会社貸与のMacBookにAndroid開発環境は作ってあったので、それほど時間かからずに出来ました。
弊社ではPCを持ち帰っても良いため、わざわざ自分のPCに環境作らなくて良いので楽でした(宣伝)!
手探りながらですが、頑張ります!他の記事も、見ていただけると幸いです。