YST Labo

個人でandroidアプリなどを開発しています (@yst_labo on twitter)

俺時計:時計の画像サイズに関するお問い合わせ

先日下記のお問い合わせがありました。返信できませんでしたので、こちらに本文の引用とその回答を記載しておこうと思います。他の方にも参考になれば幸いです。
また何かあればコメント等付けていただければ助かります。
ご報告ありがとうございます !!

お問い合わせ内容

インストールしたばかりですが、ランチャーやカスタマイズがダントツに便利で気に入りました。
ただ、私のやり方が悪いのか、好きな画像を設定するとどうしても小さくなってしまいます。上下に無駄な空白部分が出来るというか…。
スペースいっぱいに画像を入れようとすれば縦横比を無視しなくてはならず、縦伸びの間抜けな画像になってしまいます。

どうすればきちんと設定出来るのでしょうか。それとも、変に隙間の大きなホーム画面か、無地で我慢するより他ないのでしょうか。
解決策や私の間違いがあればぜひぜひ教えて下さい。

それさえ何とかなれば大満足の時計になるのですが。
ちなみにスマホの機種はdocomoのSH-06Eです。

回答

android 4.2でのウィジェットリサイズが可能な状況を想定しています。

■ 解決方法

時計の背景画像を設定した時にオリジナルな画像を一杯に表示する方法は、設置した時のウィジェットサイズのまま背景画像を設定して、それ以降そのウィジェットをリサイズしなければ、背景色が見えない状態で一杯の表示のままになるはずです。

■ 理由・動作の詳細

ウィジェットを長押ししてリサイズするとAndroidのホームアプリでサイズ調整が行われて、最初に取得できたウィジェットのサイズと微妙に異なるサイズになることがあるようです。それが上記設定で切り抜いた画像と縦横比が違うため上下に余白(背景色)が見える原因となっています。
(ちなみに背景画像の設定ではその時に設定されてるウィジェットのサイズ(縦横比)で切り抜いて設定するようになっているので、余白が見えてしまったときには再度背景画像の設定をイチからしなおすことでピッタリの画像サイズで表示できると思います)
もしも上記のように設定しても背景色が見えるような余白があるようでしたらホームアプリ固有の問題(もしくはバグ...) の可能性があります。(連絡いただれば検討してみようと思います)

■ リサイズしながら使いたいときは?

設定画面の"一般設定"で"名前をつけて保存"というのがあります。保存時には背景画像も保存されますので、例えば2x2、2x1で設定した時計の設定画面内でそれぞれ設定を保存しておき、リサイズ後に同設定画面の"設定のリストア"で現在の時計にあったサイズの設定に戻すとピッタリした背景画像を使いつづけられます。
(こういう使い方したいユーザそれなりにいるのでしょうか? サイズに応じた設定リストアみたいなことなら実装しようと思えばできそうですが…)

■ 他の問題?

他のアプリアイコンやウィジェットとの隙間 (背景色ではなくマージンが開きすぎている) の大きさのことでお悩みかもしれません。
こちらはホーム画面の仕様で決まっているスペースをそのまま設定してありますので、申し訳ありませんがそこを詰めることはできません。
お手持ちの機種をこちらは保有しておりませんので今手元で検証することができていませんが、他のアプリに比べてアイコン等との間隔が開きすぎてしまっているなどがあれば不具合の可能性がありますので改善したいと思います。

素材を作って使って楽しもう! 「てんまて」リリース

https://play.google.com/store/apps/details?id=com.yst_labo.tenmate

YSTLaboとして今までandroidアプリを開発してきた中でわりと力の入ったアプリです。これまで開発したアプリと本アプリのコンセプトは下記のようなものです:

  • AirDrum+: 「ふってふって楽しもう」

スマフォの新しい要素の技術的な試験実装の側面が強いアプリです。具体的には加速度センサの実装とJNIをつかったときのレイテンシを音声再生をつかって調べる実験的なアプリ。発展させるとすれば音楽{に|が}あわせて奏でられるようにするくらいですが、ニーズが見えないので現在凍結中。

  • 俺時計: 「時計が俺に合わせろ」

自分の今の生活に必要な時間を自由に操作できる機能を実装。またデザイン心のない自分でもやれそうな範囲での、それなりに見栄えのするデザイン設定を追加しています (レイアウトエディタはコンセプトベースで考えたとき必要そうなので付けていますがある程度おまけ的なものだと思っています)。使っていただいてる方も多く、現在も改善を続けています。ありがたいことにwebで記事に紹介されたりもしています。

  • てんまて: 「素材を作って使って楽しもう」

写真にアプリで用意された素材を色々合成できるアプリがありますが、素材をもっと簡単に自由に作れて共有できるようになるともっと楽しくなるんじゃないか、と考えて作成しました。スマフォだと切り抜きたい部分を選択するのが結構面倒だったのでそれっぽい場所を簡単に抜き出せるような工夫をしました(オートフィットモード)。

今回開発した「てんまて」ではオートフィットモードがうりなのですが、まだまだ改善の余地があります。たとえば意図せぬ部分を選択してしまった時に簡単に修正できるようにしたいと思っています。
また素材の共有機能も予定しているのですが、そもそものニーズの有無をはかりたいという意図と実際にアップロードされた素材一覧を作成してみてどういう一覧が必要かを見たいということもあり後まわしにしています。共有機能はこのアプリの本質的に必要な機能の一つであると思っていますので(開発凍結しなければ)いずれ実装します(アプリの評価や要望が高ければ高いほど優先順位をあげたいと思いますw)
使い方がわかりずらいという意見もあるので、まずは説明的なものを追加しようと思います。

少し話はそれますが、画像を切り出した形で共有するというのは画像素材の配布・販売サイトくらいしかやってなかったように思います。それが一般の人が素材を作成して公開するようになると、より共有される素材の幅も広がり、画像処理技術の発展にも繋がる可能性があると個人的には考えています (実際にニーズがあるのか、実際どんな素材が共有されるかというのも興味深くみていきたいと思っています。意味のある画像領域としての素材が多ければちょっとした画像オブジェクトDBみたいな感じになるかな、とか甘いか。。。)
素材ファイルは複数ファイルをかためたものですが、普及が進めばその仕様とか展開方法とかを紹介しようかなと思っています。


みなさんのご意見ご要望おまちしています!!

androidウィジェットアプリ「俺時計」リリース

androidアプリ、今度はウィジェットアプリの雰囲気をつかもうと思ってベタに時計アプリを作ってみました。自分の欲しい機能として任意の時間設定できる機能 (「時間が俺に合わせろ!」機能) があったのでその機能を入れたアプリです。設定次第で平成表記もできます (好きな元号設定ができます)。

https://play.google.com/store/apps/details?id=com.yst_labo.myowncalendar

自分的な使い方は起きたら時刻の再設定ボタンを押して8:00に設定して、1日のスケジュールをいつも通り過せるようにしています。多少不規則な生活をしていても、ある程度規則正しい生活ができるので便利です。


技術的に凝ってみたところとしては、複数のウィジェットをそれぞれの設定で管理できるようにしてみたところです。時間が任意に設定できるということで、複数のウィジェットを貼って複数の時間軸の時計を設定できるとかっこいいという自己満足です (^ ^;)。あとはサイズ変更可能にして、変更されたときにうまくフォントがおさまるように動的にフォントサイズ変更ができるようにしました。

時間設定とウィジェット貼るだけの基本部分は3日くらいでできたのですが、やっぱり見た目も大事ということで、色々やってると2週間ほどかかってしまいました。。。

試された方はご感想をいただけるととてもありがたいです。
今後もう少し機能を改善する予定です。


P.S.
エアドラムも振りの強さで音量ボリュームがかわる機能を追加してアップデートしました。叩いてる感覚をより再現してる感じになってると思います。ただ、ムキになって振ってもセンサーの値が大きくなるとは限らず、音量が思ったより上がらないこともあるので程々に振ってやってください。。。とはいえ、ぜひご利用ください。

androidアプリ「エアドラム+」リリース

ここ1ヶ月くらい作成していたandroidアプリをリリースしました。
端末を振ると音がでる「エアドラム+」というアプリです。
http://play.google.com/store/apps/details?id=com.yst_labo.adp

androidのセンサと音声機能を試しがてら、振ると音がでるシンプルなアプリを主にNDK(C++/OpenSL)を使って実装しています。
Javaはパラメータ設定のUI作成で主に使っています。

NDKでバイブレーションさせる方法が探しても見つからなかったためJava側を叩いたりと、少しまわりくどいところもありますが、android4.1以降ではそこそこリアルタイムに動いてそうに思っています。
(Galaxy Nexusではサクサク、Nexus Sは2.3.6でもそこそこ、 Nexus Oneは...、という感じの動きをしています)
振りまくって音が連打されてもちゃんと動くようにする点が工夫したところです。

今回初めてandroidアプリを作成しましたので至らない点も多いかと思います。
試した方はご感想をいただけるととてもありがたいです。
今後もう少し機能を改善する予定です。