Autosizing TextViewの挙動を調べてみた

概要Autosizing TextViewはAndroid 8.0(API 26, Oreo)より導入された機能で、これを用いることでTextViewのレイアウトサイズに応じて自動的にテキストサイズを調整してくれる。例えば、レイアウトサイズに収まりきらないような長いテキストを表示する必要がある場合、全てのテキストが表示可能な最大限のテキストサイズをシステムが自動で設定してくれる。また、テキストサイズ調整の許容幅(上限・下限サイズ)や調整ステップの設定も可能で、ellipsize Attributeと併用することで下限サイズでもテキストを全て表示できなかった場合は末尾を…で省略する、といったことも可能である。Support Library 26.0を用いることでAndroid 8.0(API 26, Oreo)以前でAndroid 4.0(API 14, Ice Cream Sandwich)までの端末でもこの機能を用いることができる。なお、…

requestAudioFocusが失敗するケースとは

Androidでムービー・オーディオ周りを扱うことがあり,フォアグラウンドで再生時にバックグラウンドで再生されている音楽等を自動的に停止させたくて`requestAudioFocus`周りを調べていた.だが,APIドキュメント等を調べても,このリクエストに失敗するのがどのようなケースなのかについて具体的に書かれたものがなかった.そのためAndroidのソースコードを読んで分かったことを記す.

XenServerでのNFS経由でのISOマウント

ConoHaのVPSに保存したISOイメージをNFS経由でマウントして,XenServer上のVMを起動・OSインストールということがしたかったが,なかなか詰まったのでメモしておく.

SeleniumとPhantomJS,noseを用いたWeb UIテスト

WebのUIテストツールであるSeleniumとヘッドレスな(ブラウザ画面が無い)ブラウザであるPhantomJS,これらとPythonのユニットテストライブラリであるnoseを用いることで,WebアプリのUIテストを簡単に行える.

uWSGIを用いた本番環境向けFlaskアプリケーションの構築

uWSGIというNginxなどのWebサーバとPython Webアプリケーションとの橋渡しをしてくれるシステムを用い,Nginxでクライアントからリクエストを受け取り,uWSGIを通してPython Webアプリケーションに渡すようなシステムを構築する.