2014年6月29日日曜日

Android Studio Beta のインストール(Preview からのアップデート)


このエントリーをはてなブックマークに追加

インストール前に知っておいたほうが良さそうなこと。
  • Android Studio Preview からはアップデートできない
  • Android Studio Beta を最初に起動した時に設定インポートのダイアログが表示される。設定の取得先は Android Studio のインストールディレクトリ
    • Preview を先にアンインストールしていると設定を取得するためのディレクトリがなくなる?
  • SDK は Android Studio のインストールディレクトリ以下に配置されているので、Preview でダウンロードした SDK を使いたければ Preview の sdk ディレクトリ以下の SDK を Beta の sdk ディレクトリにコピーする。SDK Manager からダウンロードし直してもよい(単にダウンロード分の時間が少しかかるだけ)。

以下は、自分が行った手順です。
  1. Beta の exe を Android Studio のページからダウンロード
  2. インストールを実行。Preview版が
    C:\Program Files (x86)\Android\android-studio
    というディレクトリにインストールされていて、上書きするのもアンインストールするのも不安があったのでインストール先を
    C:\Program Files (x86)\Android\android-studio-beta
    に設定。
  3. インストール後、初回起動時に設定をインポートするダイアログが出たので
    C:\Program Files (x86)\Android\android-studio
    を指定
  4. Preview の方でダウンロードした SDK の一部を Beta の方にコピー。build-tools, extra, platforms, system-images の中から新しそうなものを適当にピックアップ。SDK Manager でダウンロードしても良い。(ダウンロード分の時間が少しかかるだけ)
  5. 環境変数に通していた Android Studio 系のツールのパスを Beta の方に切り替える
  6. bin ディレクトリ以下にある studio64.exe.vmoptions をこのように編集してメモリ割り当てを増やす
その後、今まで Preview で作業していたプロジェクトを開いてみましたが、build.gradle の buildToolsVersion を 20.0.0 に変更し、その後出たエラーメッセージの Fix...(自動修復的なものだったような) を選択したら問題なくビルド、実行できるようになりました。
(ただ、Live Templates などの設定は引き継げていないような…?)
Live Template の保存場所はそれぞれ
$ホームディレクトリ$/.AndroidStudioBeta/config/templates
$ホームディレクトリ$/.AndroidStudioPreview/config/templates
でしたので、これをコピー・移動すれば良いようでした。 (ホームディレクトリは、Windows で言えば C:\Users\ユーザ名\ のディレクトリです。)

Android : RatingBar のカスタマイズ 画像の設定とスペースの調整


このエントリーをはてなブックマークに追加

星画像の設定

android:progressDrawable を設定する。
設定する drawable は layer_list で background が空の星、secondaryProgress が半分の星、progress が完全な星。

style.xml に追加
<style name="RatingBar" parent="android:Widget.RatingBar">
    <item name="android:progressDrawable">@drawable/rate_star</item>
    <item name="android:minHeight">36dp</item>
    <item name="android:maxHeight">36dp</item>
</style>

drawable/rating_star.xml
<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background"
        android:drawable="@drawable/rate_star_off" />
    <item android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/rate_star_half" />
    <item android:id="@android:id/progress"
        android:drawable="@drawable/rate_star_on" />
</layer-list>

星画像の間のスペースの設定

参考 : Spacing between the stars of a rating bar?

残念なことに、星の間のスペースを調整する設定はない。
画像自体を編集し、左右の余白を作る必要がある。

2014年6月28日土曜日

『名探偵に薔薇を』 感想 : 古さを感じさせない傑作探偵物


このエントリーをはてなブックマークに追加


絶園のテンペスト』と『スパイラル ~推理の絆~』の原作者である城平京さんの小説です。
両漫画が好きだったので『名探偵に薔薇を』がKindle版で販売されているのを見て買って読んでみました。

結構昔の作品(1998年発表)だったのですが、古臭さは全く感じず、読みやすくて面白かったです。
完全犯罪を可能にする架空の毒「小人地獄」がミステリーの軸だったのが、古さを感じさせないという点で良かったのかもしれません。

登場人物が少なく、舞台がコンパクトにまとまっているのも良いですね。余計な方向に話が逸れることがなく、グッと締まっている感じがします。

「Howdunit」(どうやったか)、「Whydunit」(どうしてやったか)もののミステリーとして面白い事に加えて、その事件を軸に描いた名探偵としての在り方、その悲劇もまた読み応えのある物語でした。

ミステリーの類が好きな人ならきっと楽しめるでしょう。
今までそれなりの量の小説を読んできましたが、その中でもかなりのお気に入りとなりました。

また、こんな作品と出会えますように。

2014年6月26日木曜日

Redbooth の使い方(登録方法)


このエントリーをはてなブックマークに追加
複数人で同人誌制作するときに使ってるツール(全部無料) で紹介されていたプロジェクト管理ソフト Redbooth が気になったので、登録して試してみました。

基本的に個人用途目的だったのでオーバースペックな気もしたのですが、
登録してちょっと触ってみた感触はなかなか良かったです。

プロジェクトそのものについて情報など、タスク化されないような情報を書き込んでおける「メモ」という領域があるのも良いですね。

Android用アプリの方もちゃんと作られていそうな雰囲気がありました。

しばらく使ってみて様子を見ようと思います。

以下、登録方法や使い方についてのメモです。

登録方法

  1. Redbooth のトップページ に email アドレスを入力して GET STARTED ボタンを押すと、パスワードの設定に進みます。
  2. 次に Company Name を求められるのですが、ひとまず個人で使おうと思っているので適当な名前で登録しました。登録後に設定画面から変えられます。従業員数は最小の1~9に。
  3. 次にチームメイトの招待を促されますが、これも、下の方の Do it later テキストをクリックして飛ばします。
  4. 最後に、First name, Last name, Username を入力して START。電話番号は必須ではないので入力しませんでした。氏名もユーザ名も後で設定画面から変えられます。
これで登録完了です。確認のメールが来るのでクリックしておきましょう。

設定(日本語化)

ログインすると、左下に入力した氏名が表示されていますが、そこの△マークから設定画面が出せます。ここから言語を選択でき、日本語もあったので日本語化しました。氏名やユーザ名、組織名の変更などもここの△マークから呼出です。

プロジェクトとタスク

最初から Personal Project という個人用のプロジェクトが作成されていて、いくつかのタスクが登録されています(内容は英語です)。タスクに書いてある内容に従って操作していく事で、使い方を覚えられるようになっていました。各タスクのボリュームは小さく、操作自体もわかりやすいものだったので英語に自信がなくとも大丈夫な気がします。
(※タスクの一つに、右上の▼ボタンを押してタスク名の変更をして下さい、とありましたが、タスク名自体をクリックすれば編集可能でした)

TODO リスト + αくらいの目的で使うのであれば、
タスクを開いて、名前が表示されている部分をクリックすると状態の変更が可能(解決済み、保留中など)
という事さえ覚えておけば、その他のタスク・サブタスクの追加やコメントの記入などはみたまんまなので、なんとなかなると思います。

解決にするには、タスク名の左横のチェックボックスをチェックするようになりました。
わかりやすくはなりましたが、今まで出来ていた「却下」や「保留」といったステータスにする方法がわからなくなってしまいました。。。

あと、タスク名のところに #タグ名 でタグが付けられます(Using Tags And Priorities)。
これは使い方によっては便利そうです。

詳しい使い方は知りたい場合はこちら(残念ながら英語) : Redbooth Help Center

Android : DatePicker で カレンダー(CalendarView) を非表示にする


このエントリーをはてなブックマークに追加


xml で設定する場合
android:calendarViewShown="false"

コード上から設定する場合
datePicker.setCalendarViewShown(false);

DatePicker はデフォルトでは、左側に年月選択スピナー、右側にカレンダーという表示ですが、
最近の日付しか設定しない場合等はカレンダーを表示しないで日付もスピナーにした方が選択しやすいですね。

ちなみに DatePickerDialog はデフォルトでカレンダーなしのようです。
ただし、DatePickerDialog はタイトルが日付で固定されるので、
タイトルを設定したい場合は AlertDialog に setView で DatePicker を配置する必要があります。

Android : AndroidStudio が重い場合の対処法(メモリ割り当ての調整)


このエントリーをはてなブックマークに追加
C:\Program Files (x86)\Android\android-studio\bin
以下にある
studio64.exe.vmoptions
をテキストエディタで開き、上の方のパラメータを

-Xms1024m
-Xmx2048m
-XX:MaxPermSize=512m

のように設定しました。

2014年6月25日水曜日

Android : CalendarView のエラー諸々 (* cannot be cast to android.widget.CalendarView$WeekView とか、ずっと GC が走ってアプリが起動しないとか)


このエントリーをはてなブックマークに追加
Fragment 中に CalendarView を配置しようとしていたところ、なんだかいろいろなエラーが発生しました。

結論としては
  • 同じレイアウト中に android:id/list の id を持ったレイアウト(主にListViewに使われる id) があるとエラーが発生する
    • CalendarView 内の WeekView と何かが Conflict するのでしょうか…?
  • layout_height に wrap_content は使えない。match_parent、もしくは固定の高さである必要がある
といったところのようです。

参考 : Android CalendarView slowing down layout

以下、自分でいろいろ試した結果のメモです。

状態1

  • Fragment のルートのレイアウトは RelativeLayout
  • 同じ Fragment の layout 中には @android:id/list の id を持つ ListView が存在
  • CalendarView は ListView よりも上に配置
  • CalendarView の layout_height は wrap_content

結果

java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.CalendarView$WeekView
が発生。


状態2

状態1から、CalendarView と ListView の配置を入れかえて CalendarView を下にする

結果

GC(Garbage Collection) が走り続けて、いつまでたってもアプリが起動しない


状態3

状態1から、ListView の id を @android:id/list から @+id/list に変更

結果

状態2と同じく、GC(Garbage Collection) が走り続けて、いつまでたってもアプリが起動しない


状態4

状態3から、CalendarView の layout_height を match_parent (もしくは固定の高さ 240dp 等)に変更

結果

アプリが起動するようになった。