2015年8月29日土曜日

Android開発 Glideを使ってURLから取得した画像をリサイズ表示

https://github.com/bumptech/glide
Androidの画像変換ライブラリのGlideを使って、URLから画像を取得・リサイズして表示します。

画像の非同期ダウンロード、メモリ管理、キャッシュ管理などを裏側でやってくれるので、利用者側がアプリに画像処理を実装するときには、ほとんど手間取らないで済む。という便利なライブラリです。
同じような画像変換ライブラリとしてPicassoというものが有りました(ライブラリ名はこちらの方が格好いい)が、GlideのほうがGoogle寄り、ということでこちらを使ってみました。
(GitHubのREADMEのいちばん下にThis is not an official Google product.という但し書きがありますが。なぜか、プルリクエストをするときにはGoogleのライセンスを承諾する感じです。

こんな感じで使うことができます。

元画像

アプリでURLを読み込んだ画像


実装するにあたって以下の資料が参考になりました。
Android - PicassoとGlideのどちらを使うべきか? - Qiita
http://qiita.com/rejasupotaro/items/ead90beaeaa2a6eace35
Introduction to Glide, Image Loader Library for Android, recommended by Google :: The Cheese Factory
http://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en
When placeholder is replaced by image it keeps with the size of placeholder when using .override(size, size) · Issue #542 · bumptech/glide
https://github.com/bumptech/glide/issues/542

以下、サンプルコードです。

2015年8月22日土曜日

Android開発 Facebookページを開く

AndroidからFacebookページを開くようにします。
Facebookアプリが入っているときは、アプリを立ち上げてFacebookページを開き、Facebookアプリがないときにはブラウザで開きます。
いろいろ調べたのですが、古いFacebookアプリの場合のやり方が多く出てきて、そのやり方だと実装できないことがわかりました。そこで、Stack Overflowを見たところ、最近の実装方法を書いている人がいたので参考になりました。

Open facebook page from android app (in facebook version > v11) - Stack Overflow
http://stackoverflow.com/questions/24526882/open-facebook-page-from-android-app-in-facebook-version-v11

以下コードサンプルです。
アクションバーのSettingsをタップすると、Facebookページを開くようにしてみました。

2015年8月15日土曜日

Android開発 フリックイベントを取得する


Androidでフリックイベントを取得してみます。

http://developer.android.com/intl/ja/reference/android/view/GestureDetector.html
GestureDetector クラスを使うことで詳細なタッチイベントを処理できるようになります。
そのなかの onFling メソッド(タップしてから移動して指が離れるまでの情報を扱う)を利用します。
public abstract boolean onFling (MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
パラメータは以下のようになります。
e1 The first down motion event that started the fling.
e2 The move motion event that triggered the current onFling.
velocityX The velocity of this fling measured in pixels per second along the x axis.
velocityY The velocity of this fling measured in pixels per second along the y axis.

実装するにあたって、下記の資料が参考になりました。
スワイプのイベントを取得する - ほげほげ(仮)
http://starzero.hatenablog.com/entry/20110414/1302759479
【Android】onFlingでフリック時の移動距離を取得する|俺メモ Web時々アプリ | OREMEMO
http://www.ore-memo.com/564.html
タッチパネルのダブルタップや長押しを検出する « Tech Booster
http://techbooster.jpn.org/andriod/device/3936/#more-3936

以下、サンプルコードです。