投稿

Android・・・テキスト描画あれこれ, ascent(), descent()等

Androidのテキスト描画に必要なTipsをメモ。 存在に忘れがちな横方向のAlignや、意外に正解がわかりにくい縦方向のセンター合わせ等。 ascentとdescent Paint及びFontMetricsで取得可能なascentとdescent。 テキスト描画の原点となるbaselineから上方向の高さがascentで、下方向の高さがdescentとなる。 baselineを割ってdescent領域に入るのは例えば小文字の"j"等だ。 しかし理解しづらいのは、ascentが負の値であることだ。 これは、画面の座標系を思い浮かべてbaselineを(0,0)と考えるとイメージしやすい。 つまり、画面上にはみ出すascentが負、画面内に入るdescentが正、となる。 テキスト用Paintの作成 TextPaint tp = new TextPaint(); tp.setColor( Color.WHITE ); // アンチエイリアスON tp.setAntiAlias( true ); // 塗りつぶしのみ。STROKEを入れると太くなる。STROKEだけだと中抜き tp.setStyle( Style.FILL ); // テキストのフォントサイズ。Paintに直接指定する場合、Density等の考慮が必要。 tp.setTextSize( 11f * density ); 縦方向にセンター合わせ @Override protected void onDraw(Canvas canvas) { // 領域の高さ int areaHeight = getHeight(); FontMetrics fm = tp.getFontMetrics(); // フォントの高さを求める float fh = fm.descent - fm.ascent; // センター合わせにしたあと、Baselineの位置を求めるためにdescentを引く float ty = (areaHeight/2f) + (fh/2f) - fm.descent; canvas.drawText( "text", 0, ty, tp ); } 横方向に原点を右端で設定する...

タッチタブレット「BAMBOO Touch」を買ってみた

イメージ
最近、マウスを持つのがツライ。 接地している手首、及び、左クリックする指先が痛いのだ。 良いマウスに変えたら状況が変わる可能性もあるが、 ここは思い切ってタッチパッドってやつを買ってみた。 スマホやMacのマウス等を見て、タッチもいいかな、と最近思ってきたのが理由だ。 色々迷って、最終的に購入したのは 「WACOM BAMBOO TOUCH CTT-460」 安い割にマルチタッチや、外部機能ボタンが4つあったりと高機能っぽい。 でも、Amazonのレビューが最悪。。 でも、よく見ると「ペンに対応してないので星ひとつ」というようなWACOMならではコメントが多いので、ペン入力が不要な自分には関係のないと判断した。 ところで、調べてみると、このシリーズには上位機種としてペン入力にも対応したモデルがちゃんとある。但しお値段がお高め。ペン入力が必要だったらこちらが必要だ。 というわけで、使い始めて5日間。 確かに、マウスの時、痛かった手首と指先は、痛くない。 しかし、手の甲の筋肉が疲れるようになった。 これは、今までマウスに乗っけていた指を持ちあげなくてはいけなくなったためだ。 (小さいマウスを使っても同じような筋肉を使う) そして、操作に時間が掛かる(笑) やっぱり思ったところにスパっと動かせない。 これは慣れの問題もあるかもしれない。 なんせ、マウスはもう20年近くも使ってきたのだ。 マウスの方が操作しやすくて当然だろう。 というわけで、しばらくはマウスとタッチパッドを使いわけてみようかと思う。 ところで、2本指でスライドするスクロールの精度が悪すぎて使えねぇって思ってたのだが、ドライバを最新版にしたらかなりまともになった。 スマホみたいな慣性もつくようになってる。これなら使えそうだ。 (他にもコントロールパネルの設定が増えていたり、設定が保存されないバグが修正されていたりと、ドライバの更新はマスト事項になっている。ちなみに、上位機種は最近のロットに最新ドライバを適用すると、3~4点タッチが可能になるらしい。コイツはどうやっても2点止まりらしいが)

Bluetooth開発

AndroidとPCを組み合わせて何かできそうだ。。 AndroidでのBluetooth実装 http://www.atmarkit.co.jp/fsmart/articles/android35/01.html PCでのBluetooth実装 http://www.hoge256.net/2009/03/322.html AndroidとMacをSPPで接続 http://d.hatena.ne.jp/propella/20120403/p1 HIDプロファイル・・・PICでHIDデバイスを作成する? http://phys.sci.hokudai.ac.jp/LABS/yts/pic/GB002/hid.html PCをHIDデバイス(マウス)として認識させる実験 http://homebrew.jp/show?page=1203 AndroHid・・・AndroidをHIDデバイスにする? http://code.google.com/p/androhid/wiki/AndroHid やはり、L2CAPを実現するのに、NDKでBlueZを組み込むのか。

Android:端末にインストールされているパッケージ名

端末にインストールされているパッケージ名を参照したい時はadbを使用する。 adb.exeの場所 AndroidSDKのplatform-tools よくある例) C:\Program Files\Android\android-sdk\platform-tools 使い方 コマンドラインで以下のコマンドを使用する。 (adb.exeにパスが通っている必要あり) adb shell pm list packages 抽出したい場合 例)パッケージ名にyyyが入っているもののみ表示 adb shell pm list packages|find "yyy" 参考 http://d.hatena.ne.jp/shima111/20110903/p1

ルルド マッサージクッションを買ってみた

イメージ
何を隠そうワタクシは「肩コリスト」だ。 まぁ、「肩コリスト」なんて言葉勝手に作ったのだが。 要は、肩こりがヒドイって事だ。 一日中デスクに座って、ディスプレイとにらめっこして、 キーボードカチャカチャやってたらそりゃ肩こるんだが。 特に30代後半になってから、ホント無理できなくなってきた(泣) 整体に通ってみたりもしたが、正直、行くのが面倒なんだよな。。 自宅でなんとかなる方法・・・と考えて、マッサージチェアを思いつくが、 あったら良いが、買う金も置き場所もない。 山善の肩たたき器「トルトン」というのを見つけて 家電量販店で試してみたところ、確かにスゴイその衝撃にびっくり。 しかし、同時に、叩くよりも肩もみしてほしいことに気づき、却下。。 そして、最終的に買ってみたのが「ルルド マッサージクッション」 家電量販店のお試しコーナーの中にコレが置いてあって、 そのもみっぷりに感動し、帰ってからAmazonで注文したのだ。 ポイントは、腰も肩も対応、クッションという手軽さ、おしゃれ、 試しても良いと思える限界ギリギリの値段等があるが、 なんといっても「もみ」がパワフル。 体位は工夫する必要があるが、 もみ疲れするくらいパワフル。 これを2日にいっぺんくらいの頻度でやるようになって、 肩も腰も楽になった。 おすすめ体位その1:「腰」 枕の高さと、足の伸ばすかひざを立てるかで、もみの強さを調節可能。 おすすめ体位その2:「肩」 これはマニュアルにも記載あり。 思ったより気持よく、これをやっていると寝てしまう。 会社にもひとつ欲しいな。

Bluetoothレシーバー Logitec LBT-AR120を買ってみた

イメージ
っていうかiPod touch買った。 ごめんなAndroid。 まあ、昔から持っていたiPod shuffleが限界に来たからなんだけどね。 で、無線好きの私としてはせっかくなのでBuletoothレシーバーを買ってみた。 レシーバーは、好きなイヤホンやヘッドホンが繋げるのが特徴。 機種はLogitec LBT-AR120。実売価格はヨドバシで3,000円程度。 最低限の機能がついたエントリーモデルだ。 まあ、最初なんで、お試し半分なので安いのでいいやってことで。 ちなもに、写真にはイヤホン付いてるけど、イヤホンは付属してません。 iPod touchとは問題なくペアリング。 使用も全く問題がない。 音質も僕は特に気にならない。 でもLEDが眩しすぎる。 接続中は青色LEDが一定間隔で点滅するのだが、胸ポケットに入れていても光っているのがはっきりわかるくらい眩しい。 テープかなんか貼らないとちょっと恥ずかしいかもね。。 あと、レシーバーを胸ポッケに、iPod touchを背中のリュックに入れて街を歩いていると、音が止まることが度々あった。同じところで同じ現象が発生するので、お店等のWi-Fiと干渉しているんだと思う。ちなみに、iPod touchも胸ポッケに入れてみたら大丈夫だった。距離の問題かもしれない。 とはいうものの、音楽聞いていてもコード気にせずiPod touchいじれるのはやっぱり便利。 そして、イヤホンのコードを長くしなくてよいというのが、自分としてはとってもウレシイ。 耳から胸ポッケまでの長さがあればよいので、取り回しがとっても楽なんだよね。 この長さだったらそれほどコード絡まないし。 いや~便利。

Android...EditText

EditText、地獄だぜ。 ヒントになるサイトをまとめてみた。 文字数制限、入力制限、ヒント表示 EditTextの文字制限/ヒントとかについて EditTextに文字数制限を課す方法。(xmlだとandroid:maxLength) EditText edit = new EditText( this ); edit.setFilters( new InputFilter[]{ new InputFilter.LengthFilter(2) } ); ソフトキーボードを消す http://y-anz-m.blogspot.jp/2009/12/android.html ソフトキーボードを表示する ソフトキーボードの制御 ※「別アクションでソフトキーボードを制御」の項、参照 inputMethodManager#showSoftInput(); TextViewのソース http://tools.oesf.biz/android-2.3_r1.0/xref/frameworks/base/core/java/android/widget/TextView.java