サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
fchiba.blog114.fc2.com
Androidで上位APIが使えるなら使い、使えないなら別な方法で対応する、というコードをどうやって書けばいいか検討してみた。 例えば、画像の拡大縮小を ・Ver2.0(API Level 5)以上でマルチタッチ対応なら、ピンチで行う。 ・上記以外の場合は、ZoomControlのみで行う。 としたいとする。 Eclipseのプロジェクト作成時、API Levelは1つしか選べない(チェックボックスなのに)。 なので、上位のAPIを使いたい場合は、そのLevelに合わせる必要がある。 ただし、下位の端末でも該当するAPIを使っていなければそのアプリケーションは実行可能である。 (http://developer.android.com/intl/ja/guide/appendix/api-levels.html によると、"If the application were to be som
ImageViewのビュー自体のサイズと、中身(Drawable)の表示のされ方はいろいろな要素に影響されて決まる。 ちょっとわかりにくいのでざっと整理してみたいと思う。 (この記事を読むには、Androidのレイアウト計算についてなどで、レイアウトの決まり方を知っておく必要あり) サイズに影響を与える要素は以下の10個がある。 親ViewGroupからのmeasureSpec DrawableのIntrinsicWidth/Height(Bitmapなどの大きさ) minWidth/Height maxWidth/Height BackgroundDrawableのIntrinsicWidth/Height adjustViewBounds padding matrix scaleType cropToPadding このうち、ビューのサイズに影響を与えるのは1〜7のみで、8〜10はDr
1対多の親子関係のモデルをWebから入力する際に、1つのフォーム(nested object formsと呼ぶらしい)で済ませたい場面がある。例えば請求書の入力画面みたいなやつ。 そういう場合はaccepts_nested_attributes_forとfields_forを使えばできるよ~、というサンプルはWeb上にたくさん見つかる。 しかし、ほとんどは子の入力欄の数が固定のものばかり(追加したい分だけ事前にコントローラーで子のモデルをbuildしておく必要がある)で、JavaScriptつかって入力欄を増減させたりするサンプルはなかなか見つからない。あるにはあるけど、トリッキーなコードだったり冗長だったりする。FormBuilderの取り回しやaccepts_nested_attributes_forの受け付けるパラメータの形式などを考慮すると、シンプルに書くのはけっこう難しい。 で、
レイアウト計算はViewのツリーを上から順にたどって行われる。同レベルの場合は、XML中で先に書かれたものが先。(描画も同様) 計算は2つのフェーズに分かれる。前半は必要なサイズを親が子へ問い合せる(measure phase)。後半では、親が実際の場所・サイズを決めて、子へ通知する。 前半 前半では、親が子のmeasure(int widthMeasureSpec, int heightMeasureSpec)を呼び出す。 measure(int,int)はonMeasure(int widthMeasureSpec, int heightMeasureSpec)を呼び出す。 measure(int,int)はfinalなので、計算方法をカスタマイズするときはonMeasureをオーバーライドする。 measureSpecは親が子に「こんな大きさになって欲しい」という要望を伝えるための変
# http://fchiba.blog114.fc2.com/blog-entry-35.html をもう少しわかりやすく書きなおした。 # レイアウト計算の詳細を知らなくても読めるようになったはず。 ImageViewの表示サイズは、以下の要素によって決まります。 1. layout_width / layout_heightのパラメータ 2. Drawableの画像サイズ(IntrinsicWidth/Height) 3. minWidth / minHeight 4. maxWidth / maxHeight 5. BackgroundDrawable の画像サイズ(IntrinsicWidth/Height) 6. adjustViewBounds 7. padding 8. matrix 9. scaleType 10. cropToPadding このうち、1.~7.によって
TextViewに表示されているテキストからURL、@user、#hashなどの文字列を抽出してリンクにし、他のActivityを起動したい。(いわゆるTwitterクライアント) この辺を参考に(特に2つ目)した。 http://developer.android.com/intl/ja/resources/articles/wikinotes-linkify.html http://developer.android.com/intl/ja/resources/articles/wikinotes-intents.html http://developer.android.com/intl/ja/guide/topics/intents/intents-filters.html 1. リンク作成 まず、Linkifyクラスで、該当の文字列を抜き出してリンクにする。 httpで始まる単純
libxml2をC言語で使うときのメモ。 ・parseの仕方はexamplesを参照(たくさん例がある) ・逆にツリーをたどったりするサンプルはほとんどないので、google code searchを頼る。 ・「ある名前を持った子要素を一つ取り出す」という関数はないため、 xmlNode *get_child (xmlNode *node, const char *tag) { xmlNode *child; for (child = node->children; child != NULL; child = child->next) if (!strcmp ((char *)child->name, tag)) return child; return NULL; } のようなユーティリティ関数を多くのプロジェクトで書いている。 ・XPathで相対ロケーションパスを使う場合、コンテキス
Amazon EC2とGoogle App Engineについて、転送量に関するスペックは公開されているものの、ネットワーク帯域に関する情報はみつからなかったので測ってみた。 計測にはapache benchを使用。いずれも約70KByteのデータをHTTPでダウンロード。 クライアントは日本国内からフレッツ光で接続。 条件をちゃんとそろえているわけではないのであくまでも参考値。 ・Amazon EC2 (Small Instance1台) レスポンス 1.5s スループット >700KB/s(?) さすがに海の向こうなのでレスポンスは遅い。(PC向けだとちょっと気になるが、携帯電話向けサービスなら我慢の範囲内) しかし、コンカレンシーをあげるとスループットはそれなりに伸びる。 コンカレンシー60あたりで伸びがゆるくなったが、クライアントに先に限界が来たか??? ・Google App E
このページを最初にブックマークしてみませんか?
『fchiba.blog114.fc2.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く