« Androidでネット接続 HTTP通信編 | トップページ | Androidでブラウザを作る »

Androidでネットから画像を読み込んで表示

AndroidでネットからHTTPリクエストを使って画像を取得し、それをキャンバスに描くサンプル。

比較的すんなりできた。今のところはやり方がわからないので、サイズを自分で指定している。

11/14追記 nesukeさんがサイズの取得法を教えてくれました。コメント欄を参照package net.chephes;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.content.Context;
import android.graphics.*;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;

public class AndroidDraw extends Activity {

    @Override
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(new SampleView(this));
    }
   
    private static class SampleView extends View{
        private Drawable d;

        public SampleView(Context context) {
            super(context);
            d = loadImage("http://www.google.com/images/google_sm.gif");
        }
       
        public Drawable loadImage(String str){
        Drawable d = null;
        try{
        URL url = new URL(str);
        HttpURLConnection http = (HttpURLConnection)url.openConnection();
        http.setRequestMethod("GET");
        http.connect();
        InputStream in = http.getInputStream();
        d = Drawable.createFromStream(in, "a");
                in.close();
        }catch(Exception e){
        }
        d.setBounds(20, 20, 143, 59);
        return d;
        }
       
        @Override protected void onDraw(Canvas canvas) {
        d.draw(canvas);
        }
    }
}

アンドロイドすんげーな。ポイントはDrawableクラスのcreateFromStreamで、第二引数は リソース名らしいが、今のところよくわからないので適当。とりあえず表示されたので 気にしない。

|

« Androidでネット接続 HTTP通信編 | トップページ | Androidでブラウザを作る »

Android」カテゴリの記事

コメント

参考にさせていただいています。
画像のサイズなんですけど、僕はこうしたら出来ました。

d.setBounds(20, 20, d.getIntrinsicWidth()+20, d.getIntrinsicHeight()+20);

投稿: nesuke | 2007年11月14日 (水) 13時44分

なるほど。
これで適当に画像とってきても、きれいに表示できますね。ありがとうございます。

投稿: chephes | 2007年11月14日 (水) 18時26分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/486213/8899901

この記事へのトラックバック一覧です: Androidでネットから画像を読み込んで表示:

« Androidでネット接続 HTTP通信編 | トップページ | Androidでブラウザを作る »