マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

Android

AndroidでXPath

Android 2.2からXPathが使えるようになったので使ってみた。使うまでがめんどいけど、XmlPullParserより使いやすいと思う。以下のXMLを対象にXPathを使ってみた。あまり詳しく書かないけど、少しだけ解説を載せたあと、ソースコードを載せる <memo> <contents name="チラシの表">Hoge</text> <contents name="チラシの裏">Piyo</text> </memo> XPa…

動画を撮ってみる

http://developer.android.com/reference/android/media/MediaRecorder.htmlを参考に動画を撮るプログラムを作成してみた。なんとなくカメラを使う感覚でSurfaceViewやSurfaceHolder.Callbackを使ってみたが、これでいいのだろうか?とりあえず動画を撮るこ…

Bluetoothデバイスを探索する

Android 2.0から備わっているというBluetooth用のAPIを使ってみようと思い、通信まで頑張ろうとしたが今日は探索までしかいかなかった。そしてListViewの使い方を俺がわかってない。とりあえず探索までのながれ BluetoothAdapterを取得する BluetoothAdapter…

自作Workspaceに向けて

Android Hacksを読んでいたら自作Workspaceを作ってみたいと思うようになり、設定ファイルなどをちょっといじってみた。これが正しいかどうかは不明。本に合わせて以下/mydroidがAndroidのソースファイルの入ってるディレクトリとする。それでまず/mydroid/p…

Workspaceを縦スクロールできるようになった

Workspaceを縦スクロールできるようになり、以前のスクロールはできるが画面が元に戻る(スクロール後の画面が固定されない)という問題を解決した…が!何かバグって存在しないはずの画面に行ってしまうことがあるようだ。縦にスクロールしてるはずなのに、何…

Workspaceを縦方向にスクロールできるようになった?

snapToScreenをいじってたら、Workspaceが縦方向にスクロールするようになった。スクロールなんで動画じゃないと動作が確認できないが、アイコンとGoogleの検索バーが上にずれているスクリーンショットを撮った(実際は上からアイコンが下がってきているのだ…

Workspaceを縦方向にスクロールさせてみたい

EclairのソースコードをいじってWorkspaceを縦にスクロールさせることができないかと奮闘中。packages/apps/Launcher/src/com/android/launcher/Workspace.javaのonTouchEventやupdateWallpaperOffset、computeScroll、onLayoutなどを変更してみたが、縦に動…

下の画面の問題

どうやら、先ほどのエントリの画像の問題は待ち受け用に5画面用意したのに、背景画像が3画面分しか用意してなかったことが問題らしい。5画面を3分割したために、2画面目と4画面目に継目がきてしまったようだ。packages/apps/Launcher/src/com/android/launch…

酷いことになった

Androidのソースいじってたら酷いことになった どうしてこうなった

OAuthのアプリケーションの許可画面がでるまで

http://d.hatena.ne.jp/tototoshi/20100117を参考にRequestTokeを取得して、アプリケーションを許可するかどうかの確認画面をAndroid上で行うプログラムを書いた。DesireではまだBase64が使えないためhttp://iharder.sourceforge.net/current/java/base64/を…

自作エディタを目指して その12

最近進んで無かった自作エディタの作成が地味に進んだ。まずCaretの位置が行の最後やテキストの最後の位置にあった場合表示されないという問題があったが、それを解決した。またSimejiを使ってるときに、DesireのデフォルトのIMEと少し違った動作をしていた…

ついに買ってしまった

実家の近くの本屋に『Google Androidプログラミング入門』があったのでつい買ってしまった。後悔はしてない。思ったより分厚く『Android2.1プログラミングバイブル』には、ほとんど載ってないXMLでの設定が載っている。ただSocketなどネットワーク関係は載っ…

i-jettyでServletを動かした

http://code.google.com/p/i-jetty/wiki/BuildInstructionsを見ながらコマンドラインでi-jettyをDesireにインストールした。それでServletだが、Androidでi-jettyを起動したあと、Downloadボタンを押してEnter URLにwarの場所を、Context Pathにコンテキスト…

i-jetty

Androidで動くWebサーバを探してたところi-jettyというものを見つけた。Servletも動くらしい。使ってみたい…が、Buildの仕方がわからん。eclipseを使うならm2eclipseがいいよ!とのことだがm2eclipseをインストールしたあと何をすればいいのかがわからない。…

自分のIPアドレスを取得する

3G回線で繋がっている状態でServerSocket開いて、getInetAddress()したらアドレスが0.0.0.0となっていた。困ったのでInetAddressのgetLocalHost()でアドレス取得したら127.0.0.1となっていた。なので今度はNetworkInterfaceのgetNetworkInterfaces()経由で取…

自作エディタを目指して その11

今までキャレットの左右の移動で行を越えることはできなかったので、改行を見つけたときの処理を追加。これで左端で左ボタン押したら前の行の終端に、右端で右ボタン押したら次の行の先頭にキャレットが行くようになった。勿論、テキストの先頭と終端ではそ…

自作エディタを目指して その10

文字の削除を実装した。ソフトキーボードのdelを押したときに、キャレットの位置の手前の文字を削除するようにした。ViewのonKeyDownではなくInputConnectionのsendKeyEventでKeyEvent#getKeyCode()がKeyEvent.KEYCODE_DELと一致したときに削除を行うように…

自作エディタを目指して その9

キャレットの描画と入力されたテキストの挿入をやった。Caretインターフェースのメソッドの名前を変えたり、引数を増やしたりメソッドの追加などをした。これだけあれば、テキストの挿入位置や描画の位置などに困らないはず。折り返し改行などでrowとcolumn…

自作エディタを目指して その8

現在、エディタ用のHTMLパーサもどきを作ってるわけだけど、テキストの描画とキー入力はできるわけだから、キャレットの描画を先にやろうと思い作成中。とりあえず位置の取得と設定、あと描画用のメソッドがあれば大丈夫そう。これができたら、キャレットの…

自作エディタを目指して その7

とりあえずキーボードからの入力は受け取れるようになったので、次はテキストの描画をしてみる。テキスト保持用のクラスとテキストからキーワードを抽出するクラスを作って以下のように使うようにした。documentにテキストを持たせて、tokenizerで解析してキ…

気になる本

『Android2.1プログラミングバイブル』という本をすでに持っているのだが、『Google Androidプログラミング入門』も気になる。内容は今となっては古そうだが、648ページもあるそうだ。『Android2.1プログラミングバイブル』にはない話もありそうだし、どこか…

カメラのエフェクト

Camera.ParametersにEFFECT_AQUAのようにEFFECTで始まる定数を設定すれば、何らかのフィルタがかかるようだ。ただし定数が用意されてるのがAPI Level 5からのようだ。API Level 5以前の環境で定数となっている文字列渡しても駄目なのだろうか?

カメラのプレビューで遊びたい

単純にカメラのプレビュー画面を見るだけじゃつまらないので、Camera.PreviewCallbackのonPreviewFrameを実装して、プレビューをいじって見ようと思った。ただ、このメソッドの引数で渡されるbyte[] dataはデフォルトではYCbCr_420_SP (NV21) formatとGoogle…

自作エディタを目指して その6

前回までは未確定文字列を全部消すとエラーなるという問題と、文字列確定後も未確定文字列が残るという問題があった。そこでInputConnectionを実装したクラスのcommitTextで、未確定文字列を空の文字列にしたところ、確定後に未確定文字列が消えてくれたのは…

自作エディタを目指して その5

今回は未確定文字列の取得と描画をやってみた。未確定文字列を全部消すとエラーになったりと課題は残っているが。 とりあえず、未確定文字列だが、InputConnectionのsetComposingTextの引数のCharSequence textで渡される。最初はただの文字列が入ってるだけ…

自作エディタを目指して その4

前回まで表示してたソフトウェアキーボードは英語と数字しか打てなかった。日本語が打てない…原因はよくわかってないがonCreateInputConnectionで渡されるEditorInfoに何らかの設定をしないといけないらしい。しかし、何を設定すればいいのかわからないので…

自作エディタを目指して その3

前回までのソフトウェアキーボードの表示方法では、Viewを非表示にしたあとでもキーボードが表示されっぱなしになるという問題があった。showSoftInputに渡していた二番目の引数に問題があったらしい。 manager.showSoftInput(this, InputMethodManager.RESU…

自作エディタを目指して その2

まだ、わかってないことが多いが、前回ソフトウェアキーボードの表示ができた。しかし、表示したはいいが、Viewが非表示になっても、キーボードが表示されっぱなしになってしまった。何かイベントひろって、そこでキーボード非表示にすればいいんだろうか?…

自作エディタを目指して その1

そろそろ何らかのアプリケーションを作ってみようと思い、自作エディタを作ってみようと思った。EditTextを使わずに自分でWidget作る。難易度が微妙に高い。とりあえずソフトウェアキーボードを表示させたいと思い、ドキュメントでViewのそれらしきメソッド…

ListViewを使ってみる

RSS2.0形式のフィードからタイトルの一覧を取得してきてListViewで表示するというプログラムを作った。前回はCanvasに描画にしていたが、それのListView版。フィードの取得をやってるスレッドは今のところ一つしか作って無いので、問題にならないが、インス…