hyoromoのブログ

最近はVRSNS向けに作ったものについて書いています

Hello from JNI!

NDKやらにゃなーと思ってので試して見ることにしました。使用するのは Android NDK, r4 です。r3とr4ではNDKインストール手順が異なりますし、今後また変わるかもしれませんので注意してください。 今回は android-ndk/samples/hello-jni をコピペしながら実…

マナーモード状態の取得

マナーモードON/OFF時にBroadCastされるのでReceiveすればマナーモード状態を取得できます。 IntentFilter設定 Javaコード上で以下のように設定。 IntentFilter filter = new IntentFilter(); filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION); r…

BitmapFactory.Options の使い方   の説明をちゃんとしたかったな...

画像読込時のOutOfMemory回避のお伴に BitmapFactory.Options が非常に有効です。本日はそんなAPIで何が設定出来るのか整理してみました。 設定一覧 inDensity bitmapのpixelを調整するらしいけど、どう使っていいかよく分からない。 inDither trueの場合、…

Android Pad対応方法

今までいくつかのPadを見てきましたが、今のところの共通点は以下のようになります。 Density Dpi が 160dpi(mdip)以下 解像度は480×800以上 この事から分かるように、dpiが低く解像度を高くすることで携帯端末よりも大きいディスプレイを快適に使うための工…

「ミクのライブ壁紙(MikuLiveWallpaper)」をリリースしました

アプリの紹介はこっそり始めてたオレオレなアプリまとめサイトに内容を記載しています。今回はLiveWallpaperアプリを開発するにあたり、詰まった点などを適当に書き残しておきます。俺の屍を超えてゆけ... Out Of Memory との闘い LiveWallpaperでパラパラア…

JN-DK01ベース端末のバッテリー情報について

素のAndroidの場合、内部で保持しているバッテリー情報は1%刻みで持っていますが。JN-DK01ベースの端末*1の場合は10%刻みで保持しているようです。 保持の仕方も、例えばバッテリー残量が80%から70%になった場合と60%から70%になった場合で、内部に保持され…

LiveWallpaper設定時のOutOfMemory発生原因

LiveWallpaperでプレビュー表示から設定したときにOutOfMemoryエラーが起こりやすい原因を調べてみました。 新規設定 LiveWallpaperをプレビューで表示 プレビュー上でLiveWallpaperアプリ起動 LiveWallpapserをHomeに設定 Home上でLiveWallpaperアプリ起動 …

ステータスバーの高さを求めて...

ステータスバーの高さって端末毎に違いますよね?低/中/高解像度毎に違うのは別に構わないのですが、Xperiaのように高解像度だけど他高解像度端末と異なるサイズなどあり、どうすりゃいいんだよ!と思ったけど、1つの解決策としてシステムアイコンのサイズを…

LiveWallpaperでスクリーンタッチしたら呼ばれるアレ

スクリーン上でタップしたときに呼ばれるonCommandメソッドの特性を整理しました。 取得できるイベント 2種類あります。 スクリーン上の何も無い場所をタップ スクリーン上でAppIcon移動 なお、AppWidget作成やショートカット作成ではコールされませんでした…

Bitmap, Drawableに変換

忘れがちなのでメモ Resource → Bitmap BitmapFactory.decodeResource(getResources(), R.drawable.icon) Resource → Drawable getResources().getDrawable(R.drawable.icon) Drawable → Bitmap ((BitmapDrawable) drawable).getBitmap() Bitmap → Drawable …

LogCatの見かた

Android開発し始めたばかりの人で、LogCatにどんな情報が流れてるか分からない。って人が多いので知ってる範囲で整理しました。 エラーの種類 タイプ Log出力方法 ログの意味 V Log.v(TAG, "VERBOSE") 簡易メッセージ D Log.d(TAG, "DEBUG") デバッグメッセ…

LiveWallpaperの核、Engineのライフサイクルを整理してみたよ

LiveWallpaperはWallpaperServiceを継承したメインクラスから、Engineを継承したLiveWallpaperの核となるクラスから構成されています。今回はそんな核なクラス、Engineのライフサイクルを整理しました。 LiveWallpaper設定時*1 onCreate onSurfaceCreated on…

なんでAppWidgetすぐ死んでしまうん?

Android端末に対して、一定以上の負荷を掛けると ActivityManager が悲鳴を上げて各Activity/Service が落ちる場合があります。もちろんAppWidgetも例外なく落とされるのですが、落とされたアプリをもう一度起動しようと ActivityManager は頑張ってくれます…

ショートカットのアプリ作成方法

"ホーム画面に追加" にある "ショートカット" にリストアップされる「ショートカットのアプリ作成方法」を簡単にまとめます。 AndroidManifest actionをショートカット特有のモノにすればショートカット一覧に並びます。 <activity android:name=".ShortcutActivity" > <intent-filter> <action android:name="android.intent.action.CREATE_SHORTCUT" /> </action></intent-filter></activity>

IS01 -AppWidgetに関して-

KDDIデザイニングスタジオでIS01端末の展示が行われていたので触ってきました。既にファーストインプレッション記事が多く上がっており、今更ですが主にAppWidget周りを見てきたので書いておきます。 Homeの特徴 解像度は960×480ですが、右側にメニューがあ…

SwitchWallpaperを1.2.0にバージョンアップしました

アイコンが汚いとさんざんクレームが入ったので、描き直しました。後はアイコンの色を7色の中から変更できるようにして、背景色も同様に変更できるようになってます。 久しぶりにブログ内で触れたので、アプリの説明をしておきます。 概要 このアプリは壁紙…

AndroidMarketへのアクセスURIについて

マーケットへアクセスする時のURIを整理してみました。PGから直接呼び出すときはもちろん、HP上にリンク貼ったりQRコード貼る時にも使えます。 AndroidMarketへのアクセスURI パッケージ名の完全一致検索(アプリ一覧の表示) market://search?q=pname: 開発者…

リソースの共有 〜ピクチャー共有したいんです〜

Androidでリソースを共有すると言えばコンテンツプロパイダがありますが、今回はsharedUserIdを使っての共有方法を整理しました。 今回やることの図解 概念 AndroidのベースとなっているのはLinuxカーネルです。Linux文化を継承した権限構成になっており、ap…

Androidでのピアプロキャラクター利用に際して

ピアプロのキャラクター*1をAndroidMarketで使用して良いか分からなかったので、権利元となるクリプトン・フューチャー・メディア株式会社さんに確認してみました。 無償非営利の場合 現在の所は、こちらの「非営利かつ無償の利用について」に準拠した規約に…

Droidくんのえかきうた

暇人A君と暇人B君が作りました。 歌詞 細長い、ビルの入りぐち二つあり。 その上に、おっきいビルがありました。 横に看板ふたつあり。 そんなビルに、半分お月さまが落ちてきて、落ちた拍子に丸二つ。 最後につのさしゃドロイド君。

Gadget1に参加しました

スタッフとして参加しましたが、メイン会場でマイク係してたのでプレゼン内容は聞けました。長く書くのはメンドウなので気になった点だけメモ。 ARお絵描きツール「Feel Sketch」 絵をPMcodeに変換。それをAndroid端末で読み取って、カメラ上に絵をオーバー…

コピープロテクトの問題について

AndroidではMarket登録時にコピープロテクトを掛けるかどうか設定できます。今回はこの設定をする事でどうなるかを整理します。 コピープロテクト OFF アプリをコピーできる ON アプリをコピーできない ユーザーがRootだとMarket上に表示されない表示される…

widgetを非表示にして詰める方法

やり方が分からなかったのですが、Twitterで方法を教えて貰いました。 やりたい事のイメージ ActivityがRunning状態で。左画像レイアウト状態のとき、動的に右画像レイアウト状態にする。 やりかた XML定義 TextViewとButtonを定義します。ここは普通。

ButtonらしくImageButtonを使ってみるよ

Buttonはまさに「ボタン」なAndroidのButtonですが、単純にImageButtonのBackgroundに絵を表示させても押されたか押されてないか分からない!フォーカス当たってるのかさえ分からないよ!src設定したらButton剥き出しだしって、どうしたらいいの!...と言う…

画面と壁紙の解像度を取得する方法

毎回ググってるので整理してみた。 取得方法 画面解像度 端末の各解像度に対応する際には必須となる。 WindowManager w = getWindowManager(); Display d = w.getDefaultDisplay(); int height = d.getHeight(); int width = d.getWidth(); 壁紙解像度 壁紙…

リソースを動的に読み込んでみたよ

連番になっているリソースファイルをいちいちソースコードに書いていくのは邪魔くさい。て、人にオススメな方法。genディレクトリ下にあるR.javaファイルを直読みさせればおk 方法 R.javaファイルのパスを指定し、読み込みたいリソースファイルのある内部ク…

開発するのに便利なアプリを紹介してみるよ

アプリ開発時に使うと超便利なアプリを紹介。 言語切り替え MoreLocale 2 言語を切り替えてテストするのに便利なアプリ。英語意外にも切り替えられるので、ロケールのテストには欠かせない。*1 タスクキラー Commantalb 起動中のアプリを強制終了させる便利…

端末内の全画像(一部除く)パスを取得してみたよ

端末に保存されるリソースは全てSQLite内に情報が格納されるみたいです。今回は格納されている画像情報を全て取得してみました。 やりかた Uri image_uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; Cursor cursor = getContentResolver().query(imag…

独自クラスをLayoutに定義してみたよ

何かのwidgetを継承して作ったクラスならlayoutに定義できるようです。 やりかた まずは何かのwidgetを継承したクラスを用意します。今回はメンドウなのでviewを2つ用意しました。 public class HogeView1 extends View { public HogeView1(Context context,…

SQLite3を使ってみたよ

毎回いろんなサイトのコードを繋ぎ合わせて使うのもシンドイので、ある程度まとめて書きました。使い回せるはず!いつものようにGitHubにプロジェクトを置いてます。ついでにディレクトの構成説明もしておきます。 ディレクトリ構成 hyoromo.android.demosql…