月別アーカイブ: 2014年11月

Androidでグラフ表示(AChartEngine)


Androidでグラフを表示しようと思いましたが、一から作るとなると大変そうだったのでライブラリを探しました。
「Android グラフ」でググると以下のライブラリがありました。

  • HoloGraphLibrary
  • AFreeChart
  • AChartEngine
  • 欲しかったのは滑らかな曲線が引けること、GPLじゃないものだったのでAChartEngineを使ってみました。
    (AFreeChartはLGPLだったので除外。HoloGraphLibraryはライセンスが不明だったので。)

    AChartEngineの使い方は以下のサイトを参考にさせていただきました。
    ありがとうございます。
    aChartEngineについて

    簡単に使えたのでびっくりです。


    Android StudioでVolleyを追加


    Android StudioをVolleyを追加した時の手順です。
    色々参考にさせていただきましたが、所々違ったので記載します。

    Android Studioのバージョンは、0.8.14です。

    参考:
    Androidプロジェクトを新規作成してVolleyが使えるようになるまで

    1. 作成したプロジェクトでgit init

    2. volleyプロジェクトを追加

    3. setting.gradelにvolleyを追加

    4. volleyのbuild.gradle

    のバージョンをサジェストで推奨していた0.13.2に変更。

    5. appのbuild.gradle
    dependenciesにcompile project(‘:modules:volley’)を追加。

    6. volleyのtestのAndroidManifest.xmlでビルドエラー発生

    サジェストが出ていたので、指示通りに対応。
    instrumentationに’tools:replace=”android:targetPackage”‘を追加。
    manifestに’xmlns:tools=”http://schemas.android.com/tools”‘を追加。

    これでビルドエラーが取れました。


    Android Studio 0.8.14 in Beta Channelその2


    前回Android Studioのbeta channelで
    0.8.9から0.8.14にアップデートできなかったのですが、
    とりあえず手動で上書きしたら動きました。

    Downloadページから0.8.14のリンクに移動し、Windows用のzipをダウンロードします。
    zipを展開するとandroid-studioフォルダがあるので、Android Studioをインストールした場所に上書きコピーします。

    Android Studioを起動するとbuilder-model-*.jarが複数あるとエラーが出るので、
    “C:\Program Files (x86)\Android\android-studio\plugins\android\lib\builder-model-0.12.0.jar”を削除しました。
    0.8.14からはbuilder-model-0.14.0.jarになっているようです。

    これで一応0.8.14になりました。
    これでいいんだろうか。。。


    Android Studio 0.8.14 in Beta Channel


    Android Studioは、beta channelを使っています。
    0.8.9を使っていたのですが、0.8.14にアップデートしたらエラーでアップデートできなかったのでメモします。
    mac版は特にエラーなくアップデート出来ましたが、Windows版(Windows7 64bit)だとダメでした。。。

    エラー1.
    Android Studioのインストール先にあるsdkフォルダが移動になりました。
    元々は、”C:\Program Files (x86)\Android\android-studio\sdk”にありましたが、
    0.8.14からは外出しになったようです。
    対応:
     手動でsdkフォルダを一つ上の階層に移動しました。
     次回起動時にsdkフォルダの場所を聞かれるので、フォルダを指定します。

    この件は、公式リリースノートにあります。
    Android Studio 0.8.14 in Beta Channel

    エラー2.
    アップデート中にuninstall.exeが削除できないとエラーになりました。
    対応:
     削除しろとサジェストされたので手動で削除しました。

    エラー3.
    次に、Groovy.jarが削除できないとエラーになりました。。。
    ファイルパスは、”C:\Program Files (x86)\Android\android-studio\plugins\Groovy\lib”です。
    手動でGroovy.jarを削除しましたが、今度はアップデート自体が進まなくなりました。

    Groovy.jarの場所が、削除するのに管理者権限が必要な所なので、
    試しにAndroid Studioを管理者権限で動かしてアップデートしてみましたがエラーは変わらずでした。

    この件はIssueが上がってるみたいです。
    Known Issues
    Issue 78608: Error in update to 0.8.14: ioException, cannot delete file

    ファイルを使っているプロセスをkillして試してくれとありますが、
    これといって犯人そうなプロセスもなく。
    うーむ、どうしたものか。。。


    画像の切り抜き


    キッチンタイマーアプリの売りの機能である画像選択は、
    選択された画像をテンキーの画面サイズに合わせて切り抜くようにしています。
    切り抜きは自前で用意せず、Androidのトリミング機能をIntentで呼び出しています。

    Android標準のトリミング機能を呼び出す方法は、以下のブログを参考しました。
    インテントでAndroid標準のトリミング機能(アプリ)を呼び出す方法
    Capture and Crop an Image with the Device Camera

    実際のソースです。
    各種データを引数で受け取りIntentを返してます。
    切り抜いたデータは、サイズが大きいのでストレージに保存するようにしてます。

    苦戦したのはアスペクト比(引数のaspectX, aspectY)をどうやって計算したら良いかでした。
    正方形ではなく、画面サイズに合わせてテンキーサイズが異なるため計算する必要があります。
    参考にしたのは以下のブログです。
    Crop Image keeping the Aspect Ratio & without Stretch

    テンキーのViewサイズをユークリッドの互除法を使って最大公約数を求めて
    アスペクト比を計算しました。