2010年12月30日木曜日

[Android] SurfaceviewにToastを表示するには

How to show Toast when a SurfaceView is being shown

ToastはActivityだけではなく、SurfaceViewでも表示できます。
ただしToastはContextオブジェクトを必要とするのでちょっと工夫します。
SurfaceViewにToastを実装する前のコードがこちらです。

マニフェスト(AndroidManifest.xml)


Main.java (Activity)


MySurfaceView.java (SurfaceView)


このコードを端末を回転させるたびにToastを表示させるように改造します。
回転のたびに呼び出されるSurfaceViewのonSizeChangedメソッドでToastを表示する方法を2つあげてみました。

1,コンストラクターのcontextを使う
2,ActivityのインナークラスにしてgetApplicationContext()を使う

1,コンストラクターのcontextを使う

1つ目の方法は、SurfaceViewがコンストラクターで受け取ったcontextをToastに渡す方法です。
MySurfaceView.java (SurfaceView) のみを改造します。


これで画面を回転するたびにToastが表示されるようになりました。
エミュレーターなら左のCtrl+F12で検証できます。

2,SurfaceViewクラスをActivityクラスのインナークラスにして、ActivityクラスのgetApplicationContext()を使う

2つめの方法はMain.java (Activity) のみを改造します。
Activityクラスの内部にSurfaceViewクラスを定義します。


この改造も動作は1と同じです。
この方法はSurfaceViewクラスからActivityクラスのメンバーにアクセスできます。
ただし、SurfaceViewを他のActivityから起動することが難しくなります。

関連ブログ

[Android] Toastをcancelするには

キーワード
Toast Activity SurfaceView getApplicationContext() onSizeChanged

以上、参考になれば幸いです。

SurfaceViewにToastを表示する「Eye元気!/Vigorous eyes!」公開中です!

2010年12月27日月曜日

[PR] 「お天気ロイド」がOCTOBAに掲載されました

「お天気ロイド」がOCTOBAに掲載されていました。
http://octoba.net/archives/20101025-otenkiwidget-android-1102.html
ありがとうございます!

2010年12月25日土曜日

[Android] Webコンテンツを強制的に表示するには

How to force to show web contents

AndroidOSには、ActivityにWebコンテンツを表示するためのWebViewというViewがあります。
WebViewを使っても端末がインターネットに接続されていなければWebコンテンツを表示することはできません。

以下はActivityを起動したらWebViewにWebコンテンツを表示するサンプルコードです。

マニフェスト(AndroidManifest.xml)

レイアウト(res/layout/main.xml)

Activity(Main.java)


このアプリケーションをインターネットに接続せずに起動するとエラーが表示されます。

このアプリケーションを、強制的にネットワーク接続しWebコンテンツを表示するように改造します。
Activity起動後の動作内容はこのようになります。
  1. インターネットに接続されていたらWebコンテンツを表示する
  2. インターネットに接続されていなければWifiに接続し、接続が完了したらWebコンテンツを表示する
マニフェスト(AndroidManifest.xml) パーミッションが増えました


レイアウト(res/layout/main.xml) の変更はありません

Activity(Main.java)


これで確実にWebコンテンツが表示されるようになりました。

ユーザーに無断でWifi接続するようなアプリケーションをAndroid Marketで公開するべきではありません。
 自動的にWifi接続する前にユーザーに許可を求めるなどの措置をとりましょう。

関連ブログ
[Android] WebViewを使うときの注意点

キーワード
Activity WebView ConnectivityManager WifiManager BroadcastReceiver

以上、参考になれば幸いです。

2010年12月24日金曜日

[PR] Eye元気! / Vigorous eyes! がアンドロイダーに掲載

 Eye元気! / Vigorous eyes! がアンドロイダーに掲載されました。
http://androider.jp/?p=26422

ありがとうございます!

2010年12月19日日曜日

[Android] 3Dアプリケーションの作り方

How to develop 3D application

※イメージ画像です

SH Developers Squareから3D用ライブラリーが公開されたので使ってみました。
環境は次の通りです。
ハードウェア
・SH-03C
ソフトウェア
・Eclipse3.6
・Android SDK

方法は次の通りです。
  1. SH Develpoers Squareにユーザー登録して
    sharp_addon-JNDK01_r1.zip
    sharp_addon_2_for_API7.zip
    sharp_addon_2_for_API8.zip
    をダウンロードします。
  2. リンク先に記載されたセットアップ方法の通りにセットアップします。
  3. Eclipseを起動し、[新規]-[Android project] で新しいプロジェクトを作ります。
  4. Build targetで「Sharp_addon」を選択します。API Levelが2種類ありますがAndroid2.1に対応させるなら7、Android2.2に対応させるなら8を選択します。
    ※「Sharp_addon」以外のBuild Targetを選ぶと SurfaceController のコンストラクターでIllegalAccessErrorが投げられ、3D対応APIを利用できません。
  5. マニフェスト(AndroidManifest.xml)の<application>の子要素に
    <uses-library android:name="jp.co.sharp.android.stereo3dlcd"/>
    を追記します。
これで https://sh-dev.sharp.co.jp/android/modules/download/?/api_stereo3dlcdのサンプルコードを動作させることができます。

MtkはMikuMikuDanceでサイドバイサイド画像(800x480)を用意して実験してみました。

[Android] OpenGLでシャープ製端末用3D(立体視)アプリケーションを作るもご覧ください。Javaによるサンプルを公開しています。

この画像はピアプロ・キャラクター・ライセンスに基づいてクリプトン・フューチャー・メディア株式会社のキャラクター「鏡音リン」「鏡音レン」を描いたものです。


以上、参考になれば幸いです。

2010年12月18日土曜日

[Firefox] Firefoxの起動高速化

How to launch Firefox faster

Firefoxの起動を高速化するメンテナンスについてです。
SQLiteのVACUUMやREINDEXで鈍足化を改善する方法が有名ですが、他にも遅くなる原因があります。
そこでFireboot(win専用)を試してみました。
Firebootは拡張機能の言語から日本語と英語以外のを削除し、ディスクアクセスを減らしてくれます。
操作方法は起動して開始ボタンをクリックするだけです。

実行した結果のログはこうなりました。
(Before: 3425 KB) - (After:1997 KB) = 1427 KB!!!
拡張機能の容量が半分以上削減されました。

※MtkがダウンロードしたForebootはWindowXPで実行するとログ画面が真っ黒になりました。ログをメモ帳にコピーペーストして読むことができました。

2010年12月15日水曜日

2010年12月13日月曜日

[Application] Eye元気!/Vigorous eyes! 公開




Android用アプリケーション Eye元気!/Vigorous eyes!を公開しました。
Eye元気!は“上向きクロージング・オープニング・メソッド”による眼球のトレーニングを支援するAndroidアプリケーションです。
VOCALOIDの初音ミクが音声や振動でトレーニングをサポートします。
“上向きクロージング・オープニング・メソッド”を朝晩1~2セットずつ行って、目の筋をほぐし血行を促進させましょう。
"Vigorous eyes!" supports stretching your eyes with "Looking upward and closing opening method". Attention: If you feet bad, stop stretching.

スクリーンショット


詳細はこちら
http://fujiu.jp/AndroidApp/app005_eyegenki.shtml

ダウンロードはこちら
※ダウンロード前にエンドユーザーライセンス契約(EULA)を必ずお読みください。
Android Market (Android Marketの閲覧はAndroid端末でできます)
market://details?id=jp.fujiu.AndroidApp.EyeGenki

2010年12月5日日曜日

[Android] Toastをcancelするには

How to cancel Toast ?

Toastはshowメソッドを実行した順に画面に一定時間メッセージを表示する機能です。
前に表示したToastが消えるまで次のToastが表示されないので
showメソッドを短い間隔で繰り返し呼び出すと古い情報が後から表示されることがあります。
そういう仕様なのでToastを連続表示するべきではないのですが、Toastを消すにはcancelメソッドを使います。

ただし、cancelは非staticメソッドなのでToastをインスタンス化する必要があります。
makeTextメソッドはstaticなので
Toast.makeText(...).show()
で表示したToastをcancelする方法は不明です。

※cancelメソッドを実行してもフェードアウトのアニメーションをするので瞬時に消えないようです。
それでも自然消滅よりは速いです。

Sample code