my notebook blog : Kotlin

星を SVG で描画したい

star

Small Sketch という Android アプリのアイコンで星型を使いたくなったので、星をSVGで記述する必要が生じた. 星は円周上の5つの点を直線で結ぶとできる図形. 円周上の点の計算といえば三角関数、それから直線の交点の計算、それらの点を結ぶと星のパスが描画できる. これらの計算処理をまとめます.

continue reading……

Kotlin による簡易SVG parser の実装実験

Androidアプリに使用するちょっとしたアイコンをコードで直接生成することがある。 いままで、Path に対して、moveTo, lineTo などを使って描写コードをちまちまと書いていた。けれど、SVGコマンドからパスへ変換するパーサをかけばいいじゃないか、そうすれば、moveTo, lineTo などのコードは書く必要がない。ということで書いたてみたのが これ createImageFromSVG.kts

SVGパーサといっても、 対応コマンドは MmLlHhVvZz のみ。 しかも、 L10 10 100 100 のようなコマンドは L10 10 L100 100 のように書き下す必要があるなど、いろいろ制限は多い。

continue reading……

戻るボタンのアイコンを描画する Drawable の自作

以前は、R.drawable.ic_menu_back といった戻るボタンのリソースが標準であったような気がしたが、見つからない。標準の android のアイコン一覧を探したところ、こちら にそれがあり、リソースは material-design-icons から入手できるようだ。

continue reading……

kotlin のコレクションでフィルタ実装を差し替えたい場合

たとえば、カレントディレクトリにある 拡張子 .png を持ったファイル名のみのリストを作成したい場合。 kotlin では以下のように書ける。

import java.io.File
val list = File(".").listFiles().filter( { it.name.endsWith(".png") } ).map( {it.name} )

continue reading……

kotlin でPNGファイルを一括でJPGファイルに変換するスクリプトを書いた件

kotlin のコレクションが素敵。DTP関連のタスクでは入稿してきた大量のデータの前処理してこちらの都合のよいファイル名や形式に直す必要が生じることがある。普段は groovy で処理しているのだが、kotlin のコレクションが素敵そうなので、試してみました。

環境は Mac OS X El Capitan, Terminal / javavm は java7 / kotlin は 1.0.0 を使用しています。 kotlinc などのコマンドが使える状態になっている前提で話を進めます。

continue reading……


Older Posts »