作り方はbitmapファイルをURLから、作成して、
BitmapをImageViewで表示しています。
Http通信して、画像を持ってくる方法もありますが、
個人的には画像を表示するだけなら、こちらの方法がお勧めです。
■サンプルソース
package com.example.imageview;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
//レイアウトパラム定数(縦横の長さの定数)の格納
final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;
final int MP = ViewGroup.LayoutParams.MATCH_PARENT;
super.onCreate(savedInstanceState);
//基礎画面の作成
LinearLayout oLayout = new LinearLayout(getApplicationContext());
oLayout.setOrientation(LinearLayout.VERTICAL);
setContentView(oLayout);
//普通のviewの生成
ImageView oImg = new ImageView(getApplicationContext());
//横MAXの縦幅は画像と同じ高さ
oImg.setLayoutParams(new LinearLayout.LayoutParams(MP, WC));
URL url;
InputStream istream;
try {
//画像のURLを直うち
url = new URL("https://www.gstatic.com/android/market_images/web/play_logo_x2.png");
//インプットストリームで画像を読み込む
istream = url.openStream();
//読み込んだファイルをビットマップに変換
Bitmap oBmp = BitmapFactory.decodeStream(istream);
//ビットマップをImageViewに設定
oImg.setImageBitmap(oBmp);
//インプットストリームを閉じる
istream.close();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
oLayout.addView(oImg);
}
}
■実行結果
こんな感じになります。
サーバーの画像を読みこむので、
通信が遮断されてる時や、サーバ自体の故障時には
エラーになります。
try catcchの中をちゃん考慮して、
記述してください。
どんな、エラー処理をすればいいかというと、
画像を読み込む前に電波があるのかの確認とか、
エラー時の画像を用意するとか必要になります。

0 件のコメント:
コメントを投稿