作り方は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 件のコメント:
コメントを投稿