AndroidでFlickr
chephesさんのところでlocalhostにつなげるという記事を見て早速試してみた。
普段なら
http://localhost/...
と書くところを、
http://(プライベートIPアドレス)/...
と変えるだけでlocalhostにつなげられる。
localhostに接続できればPHPとか動かせるのですごい便利。
IPアドレスはMacならターミナルでifconfig、Windowsならコマンドプロンプトからipconfigをすれば調べられます。
今回のサンプルはFlickrから画像を持ってくるもの。
PHPのソースも載せました。$keyの値はFlickrで取得したAPI Keyの値を入れてください。
にしても便利だなー。
以下動作画面とソース。
http://screencast.com/t/GrYvweV1
ソース
PHPTest.java
package net.swelt.android.phptest; import android.app.Activity; import android.os.Bundle; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.widget.Button; import java.net.*; import java.io.*; public class PHPTest extends Activity { Button mGetButton; /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); mGetButton = new Button(this); mGetButton.setText("Get Image"); setContentView(new SampleView(this)); addContentView(mGetButton , new ViewGroup.LayoutParams(-2, -2)); } public class SampleView extends View { private Bitmap mBitmap = null; public SampleView(Context context) { super(context); mGetButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { load("http://(プライベートIPアドレス)/mydir/loadimage.php"); } }); } public void load(String str) { try { URL url = new URL(str); HttpURLConnection http = (HttpURLConnection)url.openConnection(); http.setRequestMethod("GET"); http.connect(); InputStream in = http.getInputStream(); mBitmap = BitmapFactory.decodeStream(in); in.close(); } catch(Exception e) { } invalidate(); } @Override protected void onDraw(Canvas canvas) { if( mBitmap != null ) { int w = mBitmap.width(); int h = mBitmap.height(); canvas.drawBitmap(mBitmap, (320 - w) >> 1, (200 - h) >> 1, null); } } } }
loadimage.php
<?php include('xml.php'); $key = "*****"; $page = 1; $per_page = 100; $tags = "dog"; $url = "http://www.flickr.com/services/rest?"; $url .= "method=flickr.photos.search"; $url .= "&api_key=".$key; $url .= "&page=".$page; $url .= "&per_page=".$per_page; $url .= "&tags=".$tags; $xml = file_get_contents($url); $data = XML_unserialize($xml); $photo = $data['rsp']['photos']['photo']; $index = rand(0, $per_page); $id = $photo[$index.' attr']['id']; $server = $photo[$index.' attr']['server']; $secret = $photo[$index.' attr']['secret']; $imgURL = "http://static.flickr.com/".$server."/".$id."_".$secret."_s.jpg"; header("Content-Type: image/jepg"); $image = imagecreatefromjpeg($imgURL); imagejpeg($image); imagedestroy($image); ?>