picasso で resize できるの便利なのですが、resize したときに callback がしたいと思ったので fork した ものを AndroidStudio で頑張って読み込ませた話です。
picasso には build.gradle
がなく pom.xml
的なアレ。なのでこのままだと AndroidStudio で読み込んでくれません。
手段としては
などあるのですが、複数のマシンでいい感じに開発したかったので git submodule
を使いたい。ということで gradle
ファイルを自分で作りました。
といっても pom なプロジェクトのトップで
gradle init --type pom
とすればある程度いい感じに build.graedle
が生成されるので、そこを弄ります。
picasso の場合 sample など3つのモジュールに分割されているのですが、picasso本体(picaso/picasso)しか使う予定がなかったのでプロジェクトトップにあった build.gradle
は捨てて picasso本体のみで弄ることにしました。
ということでさっき生成された gradlew
等のファイルは本体以外にあるものは不要なので削除します。
しかし、そのままビルドすると picasso は javaライブラリとして認識されているのでいい感じにandroidに認識させるために Andorid Library っぽく書き換えました。
や google の volley ライブラリ をお手本にして gradle を書き換えた結果がこちらです。
gradle init
から変化した点は
AndroidManifest.xml
を追加した
<?xml version="1.0" encoding="utf-8"?> <manifest package="com.squareup.picasso"> <application /> </manifest>
build.gradle
を AndroidLibrary っぽく設定した
apply plugin: "com.android.library" android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { targetSdkVersion 22 versionCode 1 versionName "2.5.2-nonylene" } }
と言った感じです。*1
そしてあとは volley と同じようにパスを通して読み込ませる といい感じにロードすることができました。
テストも実行してみました*2が通ってくれたのでまあ大丈夫そう。*3
*1:ここでクラスパスが重複したりしましたが モジュールトップを右クリックして出て来る Project Structure の Dependencies から https://github.com/nonylene/picasso/commit/67f69b8c54ea96c8cf738d04c2faf0356c80dde6#diff-b63c6b2c1ea5f0e0147c9f567985d02cR23 のように provided にすることで解決しました。