ラベル android の投稿を表示しています。 すべての投稿を表示
ラベル android の投稿を表示しています。 すべての投稿を表示

2014年1月11日土曜日

Google Playのリンクロゴ

Androidアプリを公開したら、HPやBlogにGoogle Playのロゴを貼ってリンクを作成しよう。このロゴは「Google Play Badge」というらしい。

Android app on Google Play 

作り方は簡単。
下記サイトで 自分のアプリのパッケージ名を入力し「Build my badge」ボタンを押すだけ!
HTMLが出力されるのでそれを自分のHomepageやBlogに貼ればOKです。

Google Play Badges
http://developer.android.com/distribute/googleplay/promote/badges.html

画面の明るさタイマー

画面の明るさを変更するAndroidアプリを公開しました。
タイマー機能付きで、決まった時間になると自動的に明るさを変更することができます。



Android app on Google Play ダウンロードは左のロゴからどうぞ。

2013年12月24日火曜日

画面の輝度を変更する

Androidで画面の明るさを変更する方法を調べました。
現在のWindowの明るさを変更する方法とシステム設定を変更する方法の2種類を紹介。

1. 現在のWindowの明るさを変更する方法
この方法では現在のWindow(通常はActivity)の明るさのみを変更するので、ホーム画面や他のアプリに移動すると元の明るさに戻ってしまう。
LayoutParams.screenBrightness の値を読み書きする。値の範囲は 0.0〜1.0。
ただし、0.0を設定するとアプリの挙動がおかしくなる機種があるので注意が必要。
Xperia AXだと0.0にするとアプリが操作できなくなってしまいました。クラッシュしている訳でもなく不思議な挙動…。
Windowの明るさを取得
    WindowManager.LayoutParams lp = getWindow().getAttributes();
    float value = lp.screenBrightness;
Windowの明るさを設定
    float brightness = 0.5f;        // [0.0-1.0]
    WindowManager.LayoutParams lp = getWindow().getAttributes();
    lp.screenBrightness = brightness;
    getWindow().setAttributes(lp);

2. システムの明るさ設定を変更する方法
上記の方法ではホーム画面や他のアプリに移動すると元の明るさに戻ってしまう。Settings.Systemの値を変更することで システム全体の明るさを変更可能。
システム設定を変更するためには、まず、AndroidManifest.xml にパーミッションの追加が必要。
    <uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
その後、Settings.SystemのSCREEN_BRIGHTNESSの値を読み書きする。値の範囲は0から255で255が最も明るい。
システム設定の明るさを取得
    int value = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
システム設定の明るさを設定
    int value = 255;    // 0〜255の値を設定
    Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, value);
上記でシステム設定を変更してもすぐに変更が反映されず、ホーム画面や他のアプリに移動したときに反映される。
スライダバーで明るさを変更するアプリ等を考えると、スライダバー操作中に実際に画面の明るさを変えユーザにフィードバックを返した方がわかりやすい。その場合は、1.のWindowの明るさを変更する方法と合わせて使うことで、すぐにユーザにフィードバックを返すことができる。

Android OSバージョンとAPIレベルの対応表

AndroidManifest.xmlとかを書くときによく調べるのでメモ。

0S VersionAPI LevelCode Name
Android 4.419KITKAT
Android 4.318JELLY_BEAN_MR2
Android 4.217JELLY_BEAN_MR1
Android 4.116JELLY_BEAN
Android 4.0.3-4.0.415ICE_CREAM_SANDWICH_MR1
Android 4.0-4.0.214ICE_CREAM_SANDWICH
Android 3.213HONEYCOMB_MR2
Android 3.112HONEYCOMB_MR1
Android 3.011HONEYCOMB
Android 2.3.3-2.3.710GINGERBREAD_MR1
Android 2.3-2.3.29GINGERBREAD
Android 2.28FROYO
Android 2.17ECLAIR_MR1
Android 2.0.16ECLAIR_0_1
Android 2.05ECLAIR
Android 1.64DONUT
Android 1.53CUPCAKE
Android 1.12
Android 1.01

2013年9月24日火曜日

ListViewの要素の高さを固定する

AndroidのListViewの要素の高さを固定するには layout_height だけではなく、
minHeight も設定する必要がある。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:minHeight="60dp"
    android:orientation="horizontal" >
    ... 省略...
<LinearLayout>

2013年9月1日日曜日

Eclipseで補完が効かないときの対処方法

MacのEclipseでコード補完が効かなくなってしまった。

補完しようとすると「No Default Proposals」出て肝心の補完候補が出ない。
環境設定のキーバンドをいじっても改善せず。
 調べてみたところ eclipse の設定ファイルがおかしくなっているようでした。

対処方法:
workspace の「.metadata/.pluging/org.eclipse.core.runtime/.settings」フォルダにある
「ogr.eclipse.jdt.ui.prefs」ファイルの
「content_assist_disabled_computers」
というパラメータをコメントアウト(行頭に # を付ける)。

Eclipse を再起動するとコード補完ができるようになりました。

2013年7月13日土曜日

Androidアプリのデジタル署名に必要な証明書の作成

Google Playにアプリを公開するためには apk ファイルにデジタル署名をする必要があります。
今回はそのデジタル署名に必要な証明書の作成方法を説明します。

keytool コマンドを使います。
下記の例ではエイリアス名 ash、有効期限10000日の証明書を作ります。
結果は ash.keystore というファイルに出力されます。

$ keytool -genkey -v -keystore ash.keystore -alias ash -keyalg RSA -validity 10000

キーストアのパスワードを入力してください:

新規パスワードを再入力してください:
 
姓名を入力してください。
  [Unknown]:  ash
組織単位名を入力してください。
  [Unknown]:  ash
組織名を入力してください。
  [Unknown]:  ash
都市名または地域名を入力してください。
  [Unknown]:  shinagawa
州名または地方名を入力してください。
  [Unknown]:  tokyo
この単位に該当する 2 文字の国番号を入力してください。
  [Unknown]:  jp
CN=ash, OU=ash, O=ash, L=shinagawa, ST=tokyo, C=jp でよろしいですか?
  [no]:  yes
10,000 日間有効な 1,024 ビットの RSA の鍵ペアと自己署名型証明書 (SHA1withRSA) を生成しています
    ディレクトリ名: CN=ash, OU=ash, O=ash, L=shinagawa, ST=tokyo, C=jp
<ash> の鍵パスワードを入力してください。
    (キーストアのパスワードと同じ場合は RETURN を押してください):  
新規パスワードを再入力してください: 
[ash.keystore を格納中] 
$

環境によって聞かれる内容が多少違うようです。上記はMacの例。

Eclipseでapkファイルを生成するときに上記ファイル(ash.keystore)を指定し、エイリアス名、パスワードを入力すれば署名されたapkファイルが作成されます。


2013年2月7日木曜日

Androidのハードウェアアクセラレーション設定

WebViewのAOS2.3.4だとサクサクなのにICS端末だと激重だったので調べてみた。

AOS 3.0以降からハードウェアアクセラレーションの設定が増えていてデフォルトでdisableになっているっぽい。有効にするには AndroidManifest.xml に android:hardwareAccelerated="true" を追加する。applicationやactivityタグに設定可能。

  <application android:hardwareAccelerated="true">
    ...
  </application>


のようにapplicationタグに設定するとアプリ全体に設定可能。

  <application android:hardwareAccelerated="true">
    <activity android:hardwareAccelerated="false">
  </application>



とすると、特定のアクティビティだけoffにすることも可能。