かわいいネコの動画を紹介する「よるにゃん」をリリースしました。
ぜひ確認してみてください。

今回から「よるにゃん」で実施した実装方法のテクニックなどを紹介していきます。
今回はView同士の空白の実装方法です。
これまでは、ViewやFrameLayoutでその方法を使ってきましたが、Spaceを使用すれば更に高速に空白を表現できます。
これはICS(4.0)以降で追加されたAPIで空白(大きさ)のみを表現し、Viewの背景色等の処理は特に何も行いません。
ICSからのAPIですがソースコードを取り込めばICS以前のバージョンでも使用可能です。
ソースコードを取り込む際は、
[android-sdkディレクトリ]/sources/android-16/android/widget/Space.java
を参照してください。
使い方は以下のとおりです。
<Space android:layout_width="match_parent" android:layout_height="50dp" />先日リリースした「よるにゃん」では、「きょうのねこ」、「まえのねこ」、「せってい」を均等に分割するように利用しています。(ピンク色の部分です。)
どのくらい差が出るのか、以下のコードで1つのViewとSpaceをそれぞれ100万回再描画する時間を計測してみました。(HTC EVO3D OS2.3.4)
long time = System.nanoTime(); for (int i = 0; i < 1000000; i++) { view.invalidate(); } long processTime = System.nanoTime() - time; System.out.println("time:" + (processTime / 1000000));View :118.3ms
Space:108.5ms
(※50回の平均です)
ここでは簡単なレイアウトなので微小な差ですが、複雑なレイアウトではさらに計算の負担を減らせると思います。
またレイアウト上で目に見えない部分なので、XML内で「これは空白だよ」と明示的に指定する意味としてもよさそうですね。
0 件のコメント:
コメントを投稿