2013年3月26日火曜日

【Android】Drawableのグレースケール化


アイコンをグレースケール化するのに
Bitmapを使って各ピクセルに対して処理を行なっていたのだが
こんなのを見つけた

android - Drawable => grayscale - Stack Overflow
これだけでDrawableをグレースケールしてくれる.
うーん,便利だ.

それと関連情報
Bitmap, Drawableに変換 - hyoromoの日記

BitmapとDrawableの相互変換.
これは重要よね.

勝手にリンク貼らせて頂きました.

【Android】Javaからオブジェクトの背景色にSelectorを用いた色を使う

Javaからボタンなどのオブジェクトに背景色を指定したい.
ボタンなら更に押された時など状況によって色を変えたい.

color情報は予めXMLでリソース配下に置いておく.
res/colorディレクトリを作成し,その下につくる.
仮にファイル名をcolor_button.xmlとする.
こういう感じ.

ではないことに注意.
itemタグでcolorタグを囲むようにする.

そして,呼び出し元のJavaでは
こうやって呼び出す.
このsetBackgroundResourceメソッドは
drawable(画像)もcolor(色)も気にせずに使えるようだ.

特に難しいことではないけどあまり情報がなかったのでポスト.
今回はitemタグでcolorタグを挟むのを忘れててハマってしまった.

2013年3月22日金曜日

【Android】ローカル領域への保存でエラー:File contains a path separator


Androidではローカル領域とSDカードとにファイルを保存することができる.
SDカードに保存する場合は誰でも参照できてしまい,セキュリティ的に不安である.
耐タンパー性を確保するためにはローカルに保存することになる.
もしくは,SDカードに暗号化して保存する.

後者は圧倒的にしちめんどくさいので,ローカルにファイルを保存することにした.

ローカル領域にファイルを保存するときに
java.lang.IllegalArgumentException: File (ファイル名) contains a path separator
というerrorが出ることがある.

ファイルを1つだけ保存するならまず出ないだろうが,
ディレクトリ構造をストリームで保存したり,
不適切な名称をつけようとすると出るエラーである.

ローカル領域に保存すると
/data/data/[アプリケーション名]/file
に保存されることになるのだが,
エラーの理由としてはローカル領域に保存する場合は
ディレクトリ構造を作ることができないためである.

ファイル名に/が入っていたり
ストリームでディレクトリ構造になっていたりするとエラーになる.

ディレクトリを作れないので,
/data/data/[アプリケーション名]/file
の下にファイルを横一列で配置しないといけない.

その代わり,配下のファイル名を全て取得する
fileList()メソッドがある.
管理が大変なのか,楽なのか
ファイル数で決まるな…

2013年3月21日木曜日

【Android】LogCatが文字化け…?


くだらないことだけど戒めのためにポスト.

XmlPullParserというXMLパーサを使って
XMLを読み込もうとしていた.

動作はうまい具合に進んでいたのだが,
トレースのためにログ出力させていたところで
日本語が見事に文字化け.

調べてみるとDDMS周りで古い情報ではあるが
そのような挙動が報告されていた.
しかし,2010年とかの報告であり,今現在は修正済みとのこと.
おかしいな.

LogCatに表示させているフォントが悪いのかと
設定を変更させてみた直らず.

最初に書いたが,原因は至極くだらないこと.
パース対象xmlファイルがsjisでエンコーディングされていた.
このxmlファイルをUTF-8に変更すると文字化けはなくなった.

俺の…俺のミスだ.(ノベンタ将軍的な意味で)
以後,気をつけよう.

2013年3月7日木曜日

【Dropbox】日本語を勉強中らしい


Dropboxは日本語を勉強中です

こんにちは○○さん、

Dropboxでは日本語版を改善するように夢中で努めています。過去数ヶ月、
日本のユーザーがDropboxをより使いやすくするため日本語での表現を見
直してきました。

ということでDropboxからメールが来た.
日本語版がより使いやすくなるのはいいことじゃないか.
応援していきたい.無料ユーザーだけど.

どういうふうに変わったのかという例が載っていた.

・「Votebox」は「投票箱」になりました
ほうほう,直訳すぎるけど日本語として伝わるようになったな
・「選択型同期」機能は「選択的同期」になりました
え?
・「パックラット」機能は「Packrat」になりました
おい!( ゚д゚)

Dropboxをお楽しみください!

突っ込みどころ満載すぎるだろ.
ネイティブいないのかよ.

Packrat機能って何かと調べてみたら
削除済みのファイルを復元させる機能だそうです.
ちな有料会員向け.

2013年3月6日水曜日

【Tizen】きもい(ノ∀`)


某社が主導して開発を進めている
モバイル用OS,Tizen(たいぜん).

同じモバイル用OSであるAndroidと比較して
今わかる一つのことがある.

それはマスコットが途方もなくキモいということだ.
なにこれ

Androidのマスコット,ドロイド君(非公式名称)は
かわいい
こんなかわいいのに!
ドロイド君も今の姿になるまでのデザイン段階では
ひどい

こんな姿だったけど
Tizenのマスコットは嫌悪感を抱かせるデザイン.
すごいこれ.


そこで,Tizenの参画メンバーを見てみよう.
面白い面々が並ぶ.
日本からは…
・富士通
・パナソニックモバイル
・NECモバイル
・ドコモ
という企業が参画している.

ガラケーを作っていたがiPhoneの流れに焦って
後手後手でAndroidスマートフォンを作ったが
結局ガラスマと呼ばれた端末メーカーたちと
初段でiOS獲得に失敗し,端末メーカーにガラケーを作らせ続け,
競合他社に焦って初めて
Androidスマートフォンを作らせることとなった元凶で
おいしかったiモードという自社サービスを
泣く泣く見捨てることになった携帯キャリア.

この流れは…
見事すぎる.

端末メーカーとして参画しているのは日本の3社のほかは
大元締めの三星と華為.

インテルがチップメーカーとして唯一参画しているが
iOSやAndroidというモバイル市場をARMアーキテクチャにほぼ独占されて
次こそはという意図があるのだろうか.
Atom系SoCもパッとしなかったし.

日本ではスマートフォンとしてはそのiOSとAndroid二強で
他OSは無視していいレベルな現状なのだが,
それでもマルチプラットフォーム対応には苦慮するのに
これ以上プラットフォームを増やしてくれるな
とアプリケーション開発者は言いたい.

まぁWindows RTですら遅すぎた感が拭えないので
互換性のないプラットフォームだとすると
このTizenやFireFox OSの出る場はなさそうかなとも思うが.

それでもWindows RTはWindows8とともに頒布されるので嫌でも拡がるよ.
使われる・使われないはさておき.

2013年3月4日月曜日

【Windows8】左上のアプリ切り替えが出てこない


通常,Windows8で画面の左上にカーソルを当てると
左上

このような表示になり,待機中のRTアプリやデスクトップを切り替えることができる.
他にも操作方法はあり,
・画面左上にカーソルを当てる
・画面左下にカーソルを当て,スタートが表示されたら上へカーソルを移動
・タッチパネル端末だと画面左端から右へスワイプ
・ショートカットWindowsキー+TABキー

これらの動作によりバックグラウンドで待機しているアプリへ
他モバイルOSより簡単に切り替えることができるのだが…
設定をいじくっているとこの操作ができなくなる場合がある.

家のノートがその状態になっていた.

戻し方は以下のとおり.

画面右下にカーソルをあて,設定を選択



一番下のPC設定の変更を選択


全般を選択し,アプリを切り替えて使うオンにする


これで左上が使えるようになったはず.
以上

2013年3月1日金曜日

【ONKYO】TA117CのROOTEDができなかった件


今更こんな端末だけど.
別にルートを取るのが目的ではなく,
目的はMOD FWの書き込み.
じゃないとGoogle Playすら使えない.
このタブレットはマウスコンピュータのLuvPadと同じものだそうだ.

ROM焼き手順はいろんなサイト様で書いてあるので割愛.
NVIDIA Tegra端末開発ツールのNVFLASH.EXEで失敗していた.
ちなみに64bitOSでは動かないようなので32bit上で作業.

32bitOS上で作業していたのに
USB device not found "Please close command window. Shut down gTab by holding power button"
などと表示されてROM書き込みまで行けなかった.

原因はドライバ.
どうやらTegraのHWをVMWareの仮想端末のUSBと誤認されていたらしい.
ので,かなり環境依存の現象ではありそうだが
他の端末でも起こりうるし,見識もなさげなのでポスト.

当機の場合は
1.USBでPCと接続する
2.デバイスマネージャの画面を開いてUSB(Universal Serial Bus)コントローラのところを展開しておく
3.タブレットを一旦電源OFF(シャットダウン)し音量(-)ボタンを押しながら電源を入れる
 ↑タブレットはONKYOロゴが表示されてすぐに真っ黒になるがそれでOK
4.すかさずデバイスマネージャを確認し,VMWare USBのドライバを削除
5.PCの再起動が促されたら成功

その後,再度上記手順3.を行い,ハードウェア更新ウィザードを開かせ
正しいドライバ
NVIDIA USB Boot-recovery driver for Mobile devices
を入れる.

すると,NVFLASHが正しく動いた.
ROMも書き換えられてはっぴー
以上だ.