2011-09-14 19 views
-1

画像ビューで画像URLから画像を取得するにはどうすればよいですか?
私のimageUrlはdatabaseadapterから来ています。

フィールドクラスLocationImage dataypeは文字列ですが、setBackgroundResourceメソッドでは、パラメータとしてint値を要求しています。 LocationImageのURLはデータベースから取得しています。そのため、文字列変数として取得しました。
imageViewのimageUrlから画像を取得する方法

コード行はここにあります。

import java.util.ArrayList; 

import android.app.ListActivity; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteException; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.TextView; 

public class FindPlaces extends ListActivity{ 

    private SQLiteDatabase DbLoc; 
    ListView lv; 
    int val; 
    private ArrayList<Fields> results = new ArrayList<Fields>(); 
    @Override 
    public void onCreate(Bundle savedInstance) { 
     super.onCreate(savedInstance); 
     setContentView(R.layout.places); 
     getallLocs(); 
     setListAdapter(new StudentListAdapter(this, val, results)); 
    } 

    class StudentListAdapter extends ArrayAdapter<Fields>{ 
     private ArrayList<Fields> locationDetails; 
     private Context mContext; 

     public StudentListAdapter(Context context,int textViewResourceId, ArrayList<Fields> results) { 
      super(context, textViewResourceId, results); 
      // TODO Auto-generated constructor stub 
      System.out.println("Constructor StudentList Adapter..."); 
      this.locationDetails = results; 
      mContext = context; 
     } 
     @Override 
     public int getCount() { 
      // TODO Auto-generated method stub 
      return results.size(); 
     } 
     @Override 
     public Fields getItem(int position) { 
      // TODO Auto-generated method stub 
      return locationDetails.get(position); 
     } 
     @Override 
     public long getItemId(int position) { 
      // TODO Auto-generated method stub 
      return super.getItemId(position); 
     } 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      // TODO Auto-generated method stub 
      View v = convertView; 
      if(v == null){ 
       LayoutInflater vl = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vl.inflate(R.layout.placeslist, null); 
      } 
      Fields o = results.get(position); 

      if (o != null) { 
       TextView iv = (TextView)v.findViewById(R.id.toptext); 
       TextView tv_sNo = (TextView)v.findViewById(R.id.toptext1); 
       ImageView tv_Image = (ImageView)v.findViewById(R.id.Locimage); 

       iv.setText(o.getLocationName());        
       //tv_sNo.setText("Status: "+ o.getOrderStatus()); 
       tv_sNo.setText(o.getLocationImage()); 
       tv_Image.setBackgroundResource(o.getLocationImage()); 
      } 
      DbLoc.close(); 
          return v; 
     }  
    } 
    static class ViewHolder 
    { 
     TextView Locationname; 
     ImageView Locationimage; 
    } 
    private void getallLocs() { 
     // TODO Auto-generated method stub 
     try { 
      DatabaseHelper dbHelper = new DatabaseHelper(
        this.getApplicationContext()); 
      DbLoc = dbHelper.getWritableDatabase(); 
      Cursor c = DbLoc.rawQuery("SELECT " + DatabaseHelper.LocationName+ " , " + DatabaseHelper.LocationImage + " FROM " 
        + DatabaseHelper.LOCATIONTABLE , null); 
      System.out.println("SELECT " + DatabaseHelper.LocationLang+" , "+DatabaseHelper.LocationLat+" , "+ DatabaseHelper.LocationName 
        + " ," + DatabaseHelper.LocationImage + " FROM " 
        + DatabaseHelper.LOCATIONTABLE); 
      if (c != null) { 
       if (c.moveToFirst()) { 
        do { 
         String LocationName= c.getString(c.getColumnIndex("LocationName")); 
         String Mobile = c.getString(c 
           .getColumnIndex("LocationImage")); 
         Fields p = new Fields(LocationName, Mobile); 
         results.add(p); 

        } while (c.moveToNext()); 
       } 
      } 
     } catch (SQLiteException se) { 
      Log.e(getClass().getSimpleName(), 
      "Could not create or Open the database"); 
     } 
       } 
} 
+1

に画像を設定するには、以下のコードを使用して得た場合、この画像は描画可能フォルダのようにSDカードやリソースフォルダ内にありましたか?あなたがデータベースから取得するパスを私に示すことができますか? – Pratik

+0

あなたは何かfromm o.getLocationImage()ur code.is urlまたはlese – Pinki

+0

URLは[リンク](http://www.gravatar.com/avatar/f80674989557a35b0fec1fdc21ecbcc4?s=32&d=identicon&r=PG)画像URLをデータベースに保存しています。ディスプレイには、URLから直接表示したいのですが、これは正しい方法ですか? – atluriajith

答えて

2

Uは画像のURLは、URLからのImageViewの

Bitmap mbmp = BitmapFactory.decodeStream(new java.net.URL("urlname").openStream()); 
Imageview_ref.setImageBitmap(mbmp); 
+0

私のアプリケーションでイメージを表示する最善の方法を教えてください。そこからデータベースからイメージURLを取得しています。イメージを表示したいです。このため私はインターネットにアクセスする必要がありますか?この正しい方法は何ですか? – atluriajith

+0

@atluriajith:必要なインターネット接続が必要です。マニフェストファイルで許可を使用してください。上記のコードに従います。 – Pinki

+0

すべての画像の読み込みにインターネットを使用する場合。その後、バッテリーを消費します。 – atluriajith