2011年10月31日月曜日

[Android] 明るさを変更する方法と注意点

実装方法

Activity 内に以下のコードを記述

 WindowManager.LayoutParams lp = getWindow().getAttributes();
 systemBrightness = lp.screenBrightness;
 lp.screenBrightness = 1.0;
 getWindow().setAttributes(lp);

システム設定を保持しておいて、後で元に戻す.

注意事項

値を0にするとWindowフォーカスを失ってしまうらしいので要注意.


参考にしたサイト

明るさ設定の落とし穴 - Hacking My Way ~ itogのhack日記
http://d.hatena.ne.jp/itog/20100913/1284346565

2011年10月30日日曜日

AndroidのWidgetを実装する

実装する機能


ホーム画面にWidgetを追加し、タップした時の動作を設定


必要なもの


  • Android Manifestの設定(XML)
  • Widgetの設定(XML)
  • Widgetのレイアウト定義(XML)
  • AppWidgetProviderを継承したクラス


Android Manifestの設定


AppWidgetProviderを定義する
<receiver android:name=".MyWidget" android:label="MyWidget">
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    </intent-filter>
    <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
</receiver>


Widgetの設定


プロジェクトファイルのres/xmlフォルダに「widget.xml」を定義する

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:minWidth="72dip"
        android:minHeight="72dip"
        android:updatePeriodMillis="0"
        android:initialLayout="@layout/main" />


Widgetのレイアウト定義





AppWidgetProviderを継承したクラス

import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.widget.Toast;

public class MyWidget extends AppWidgetProvider {

 @Override
    public void onUpdate(Context context, AppWidgetManager manager, int[] appWidgetIds) {
  Toast.makeText(context, R.string.msg, Toast.LENGTH_SHORT).show();
    }
}



参考にしたサイト

Androidのホーム画面に常駐するアプリを作るには (1/3) - @IT
http://www.atmarkit.co.jp/fsmart/articles/android10/android10_1.html

ボコ:【Android開発】バッテリー残量ウィジェットの作り方 (1/4)
http://boco.hp3200.com/beginner/widget02-1.html

◆とても詳しくて参考になる
Y.A.M の 雑記帳: Android AppWidget
http://y-anz-m.blogspot.com/2011/06/androidappwidget.html