2013年6月30日日曜日

Notificationのアイコンサイズ

Notification notification = new NotificationCompat.Builder(context).setSmallIcon(R.drawable.ic_stat_notify_cat)

Notificationに表示するアイコン「R.drawable.ic_stat_notify_??」のアイコンサイズ。

res/
  drawable-hdpi  36x36px
  drawable-ldpi  18x18px
  drawable-mdpi  24x24px
  drawable-xhdpi  48x48px
  drawable-xxhdpi 

ファイル名は「ic_stat_notify_」のプレフィックスが慣例。
例えば(ic_stat_notify_cat.png)といったファイル名を付ける。


こないだ、画像が切れて表示されて何でだろうと解決しなかったのですが、
アプリケーションのアイコンを指定していたのが原因だったと後から気づきました。
別のリソースを指定するのね。めもめも。

2013年6月29日土曜日

androidアプリケーションのアイコン

androidアプリケーションに付けるアイコンの規則

・ファイル名 ic_launcher.png

・保存先ディレクトリ
 res/
   drawable-hdpi   72x72px
   drawable-ldpi 
   drawable-mdpi   48x48px
   drawable-xhdpi  96x86px
   drawable-xxhdpi 144x144px

作成したアイコンのファイル名は固定で「ic_launcher.png」になり、
「res」ディレクトリの下に「drawable-?dpi」のディレクトリを作ってその中に置く。
それぞれのアイコンサイズは上記の通り。


上の表は、エクスプローラーやeclipseで表示される順番に書きました。
本などは小さい順に書かれていて、核ならその順番が妥当なのですが
いざ画面上と順番が違い戸惑いましたので並べ直してみました。

アイコンの作成はイラストレーターを使ったのですが、それぞれのサイズのファイルを
一度に出力できる方法がないかと調べている最中です。
何か少し修正するごとにアイコンファイルを何個もエクスポートするのがちょっと手間になってます。

2013年6月28日金曜日

package名に記載するURLにハイフン記号「-」が含まれる場合

マイナス記号「-」はアンダーコア「_」に書き換えるとの事。



このサイトも「stella-house-software」でしてeclipseでpackage nameを入力しようとしたら
マイナスが入力できません。ホームページのURLを換えて最初から作り直しが必要なのかと
少し心配しながらあれこれ探してみたらアンダーコアに書き換えればよいとの事です。
よかったです。これからは「stella_house_software」でパッケージ名を統一します。
私の場合は「jp.blogspot.stella_house_software」です。

もともとはこのサイトを作るときにアンダーコアを使いたかったのですが使えずに
どうしようかなと考えて、ハイフン記号に置き換えたのですが、
こんどはpackage nameで逆の悩みが出て確認しました。

2013年6月27日木曜日

eclipseに「Android SDK Manager」「Android Virtual Device Manager」が表示されない

android SDKをインストールしたにも関わらずeclipseでandroid関連のメニューが表示されない場合


eclipseの「Window」メニューに「Android SDK Manager」が表示されない場合は下記の設定で表示される。
 「Window」メニュー
   「Customize Perspective...」
      ↓
   「Command Groups Availability」タブ選択
      ↓
   「Android SDK and AVD Manager」にチェックを入れると表示される。


eclipseの「File」メニュー→「New」に「Android Application Project」が表示されない
 「Window」メニュー
   「Customize Perspective...」
      ↓
   「Menu Visibility」タブ選択
      ↓
   「File」クリック
     「New」クリック
       「Android Application Project」をチェックすると表示される



この問題は、そもそもどうしてeclipseのメニューから突然消えてしまう事があるのだろうと思います。
sdkのディレクトリを変更したらなるのかな。再インストール扱い(?)の様な手順があるのか。
いまいちわかりません。
でも、そもそもいらない項目をメニューから削除したりするのもこの辺りなので情報としてメモです。

2013年6月26日水曜日

targetSkVersionのエラー


AndroidManifest.xmlのtargetSdkVersionを変更すると警告メッセージが出る問題



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

 以下の警告メッセージが出る。
>Not targeting the latest versions of Android; compatibility modes apply.
>Consider testing and updating this version.
>Consult the android.os.Build.VERSION_CODES javadoc for details.
eclipsのメニューより「Project」→「Clearn」を実行するとエラーは消えるが、再度ビルドし直すと再発する。

(調査中)
android:targetSdkVersionがアンドロイドの最新バージョンになっていないと必ず出る警告(らしい)

結局は、そういう使い方自体がナンセンスですよ。という事なのだと思いますがver8ならver8でと思ってしまうのですがその辺りの解釈が違うのかなと思いました。
実際は何も問題が無いのでいいかなとも思っています(^_^;
それよりも、様々なandroidの実機がほしくなりますね。画面の大きさの違いやバージョンの違いなど気になります。

2013年6月25日火曜日

「設定」画面の「端末設定」の中にある「microSDと端末容量」の画面を出す方法

「設定」画面の「端末設定」の中にある「microSDと端末容量」の画面を出す方法
  1. public void buttonClick( View view) {
  2.     Intent intent = new Intent(android.provider.Settings.ACTION_INTERNAL_STORAGE_SETTINGS);
  3.     startActivity(intent);
  4. }
 ↓ボタンをクリックすると「microSDと端末容量」の画面が表示される。


これも設定画面のひとつで、プログラムから呼べました。メモメモです。
本当はもうちょっと違う画面を出したくて試行錯誤しているのですがたどり着きません。
android.provider.settingsのパッケージのリストは出たので一度全部動かしてみたいなと思いました。
まえのwifiの記事では文字列で渡したのでその関係もちゃんと理解が必要だなと思いました。



2013年6月24日月曜日

「設定」の「無線とネットワーク」の中の「Wi-Fi」の画面を出す方法

「設定」の「無線とネットワーク」の中の「Wi-Fi」の画面を出す方法です


  1.         Intent intent = new Intent();
  2.         intent.setClassName("com.android.settings", "com.android.settings.Settings$WifiSettingsActivity");
  3.         this.startActivity(intent);

クリックすると以下の画面が表示されます。


問題の本質は、このandroidの設定画面などのpackage name(というのかな?)を一覧で調べる方法がないかと思うのですが、今のところは、あれこれ情報を少し得てはやってみて動いたとかくにんしています。いろいろ試してもプログラムから出せない項目も多く、なぜ出せないのか、ではこの画面はなぜ出せるのか、ソースコードの見方を覚えた方がいいのかな。

2013年6月23日日曜日

android AVDの保存先を変更する

android Virtual Device Managerで作成した設定ファイルなどを保存するディレクトリを変更するには
環境変数「ANDROID_SDK_HOME」にパスを書く

例)
ANDROID_SDK_HOME=D:\local\ANDROID_SDK_HOME

この例では「D:\local\ANDROID_SDK_HOME」のディレクトリの中に「.android」ディレクトリが作成される。
通常はWindowsのユーザーディレクトリの直下に作成されるがCドライブの容量が少なかったので移動させました。
バーチャルマシンのファイルが置かれるのでファイルサイズが結構大きくなるのでCドライブの容量が少ない場合は要チェックです。

これも前の記事と同じ私のSSDの容量が少ないからですが、linux文化に近いandroidがc:\usersの下に作られるのは少し変な感じがしました。

2013年6月22日土曜日

android SDKのインストール先の変更

android SDKをインストールしたディレクトリを変更した場合、eclipseで設定して認識させる必要がある。

「Windows」メニューの中の「Preferences」選択

「Preferences」ウィンドウの左ペイン「Android」クリック
 ↓
右ペインの「SDK Location」にインストールしたディレクトリをしていする。

例)
「SDK Location:」「D:\local\android-sdks」

この「D:\local\android-sdks」ディレクトリの直下に「AVD Manager.exe」や「SDK Manager.exe」が存在している。



私の使っているSSDが80GBでして、windows7にあれやれこや入れているのですがどうにもCドライブがいっぱいで、ディスク容量を気にしてあれこれだなんて最近やらない話だったなと思いながら一生懸命テンポラリをDドライブに設定変更したりしています。SSDも安くなってきましたし買い換えちゃうのが一番早いのですが、仕組みの話は覚えて置こうと思いました。

2013年6月21日金曜日

「adb.exe」Android Debug Bridgeをコマンドラインから起動できるようにする

コマンドラインからadb.exeが実行できるように、環境変数のPATHに「adb.exe」が存在するディレクトリを追加する


例)
「PATH」「D:\local\android-sdks\platform-tools」

Windowsパソコンでの設定方法
「コントロールパネル」から「システムとセキュリティ」→「システム」→左ペイン「システムの詳細設定」クリック

「システムのプロパティ」ウィンドウの「詳細設定」タブ→「環境変数」ボタンクリック

「環境変数」ウィンドウの上の方の「ユーザーの環境変数」の中の「新規」クリック

「変数名」に「PATH」入力
「変数値」に「D:\local\android-sdks\platform-tools」入力

すでに「PATH」が存在する場合はすでに入力されている「変数値」の中の文字列の最後にセミコロンをいれて「;D:\local\android-sdks\platform-tools」を入力する



windowsの環境変数というより、dosの環境変数ですね。昔はdosの中でwindowsが動いていましたが、いつのまにやらwindowsのなかでdosが動くようにはなりましたがdosはいまも現役です(^_^)

2013年6月20日木曜日

アプリケーションにadmobの広告を入れる方法

アプリケーションにadmobの広告を入れる方法です。


○ライブラリ
エクスプローラーから「GoogleAdMobAdsSdk-6.4.1.jar」をeclipseの「lib」へドラックアンドドロップする。

すると以下のダイアログが出る
>File Operation
>Select how files should be imported into the project
「Copy files」か「Link to files」が選べるので「Copy files」を選んで「OK」をクリックする


○マニフェスト
AndroidManifest.xmlに以下の2つの権限を入れる。
(users-permissionはmanifestタグのひとつ下に入れる)
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

AndroidManifest.xmlにはadmob用のactivityも記入する。


○レイアウト
layout.xmlの最初の <RelativeLayout>の中にはxmlns:ads="~の一文を入れる。

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

layout.xmlへ表示用のタグを入れる (ads:adUnitIdはそれぞれ割り当てられたIDを入力する)

テスト中は、ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"の文字を入れておく。