2017-02-22 81 views
1

我創建了一個ListView。當我單擊ListView的單個項目時,我將調用一個活動來顯示單個項目View。 TextView數據正在解析。但是當我試圖調用一個圖像來解析它的不加載時(該圖像在線存放在一個單獨的位置)。如果任何人可以請告訴如何在這裏加載圖像?ANDROID:從解析圖像獲取Android圖像

我的文件URL

url = new URL("file location " + statusObject.getString("image")); 

編輯的代碼

URL url = null; 
        try { 
         url = new URL("https://www.gravatar.com/avatar/db5bfe41c9d21d3a5b4e5b5f6a2d776d?s=32&d=identicon&r=PG&f=1"); 
        } catch (MalformedURLException e1) { 
         e1.printStackTrace(); 
        } 
        Bitmap bmp = null; 
        try { 
         bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
        } catch (IOException e1) { 
         e1.printStackTrace(); 
        } 
        txtv2.setImageBitmap(bmp); 

////////////////

單個項目視圖

import android.content.*; 
import android.net.*; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.util.*; 
import android.view.View; 
import android.widget.*; 

import com.parse.*; 
import com.parse.ParseException; 

public class SingleItemView extends AppCompatActivity { 

    String objectId; 
    protected TextView txtv; 
    protected TextView txtv1; 
    protected ImageView txtv2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_single_item_view); 


     txtv =(TextView)findViewById(R.id.txt123); 
     txtv1 =(TextView)findViewById(R.id.txt1234); 
     txtv2 =(ImageView)findViewById(R.id.txt12345); 
     Intent i =getIntent(); 

     objectId = i.getStringExtra("objectId"); 

     ParseQuery<ParseObject> query = ParseQuery.getQuery("_User"); 
     query.getInBackground(objectId, new GetCallback<ParseObject>() { 
      public void done(ParseObject object, ParseException e) { 
       if (e == null) { 

        String username = object.getString("firstname"); 
        txtv.setText(username); 
        String position = object.getString("position"); 
        txtv1.setText(position); 
        String img_ = object.getString("image"); 
        txtv2.setImageURI(Uri.parse(img_)); 

       } else { 
        // something went wrong 
       } 
      } 
     }); 



    } 

} 

片段文件

import android.content.*; 
import android.os.Bundle; 
import android.support.v4.app.*; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.*; 

import com.parse.FindCallback; 
import com.parse.ParseException; 
import com.parse.ParseObject; 
import com.parse.ParseQuery; 
import java.util.ArrayList; 
import java.util.List; 

public class Individuals extends android.support.v4.app.ListFragment 
     implements FindCallback<ParseObject> { 

    private List<ParseObject> mOrganization = new ArrayList<ParseObject>(); 
    SearchView sv; 
    IndividualsAdaptor adaptor; 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.individuals, container, false); 
    } 
    @Override 
    public void onViewCreated(View view, Bundle b) { 
     super.onViewCreated(view, b); 
     sv = (SearchView) view.findViewById(R.id.ser1); 
     adaptor = new IndividualsAdaptor(getActivity(), mOrganization); 
     setListAdapter(adaptor); 
     ParseQuery.getQuery("_User").findInBackground(this); 

     sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
      @Override 
      public boolean onQueryTextSubmit(String text) { 
       return false; 
      } 
      @Override 
      public boolean onQueryTextChange(String text) { 
       adaptor.getFilter().filter(text); 
       return true; 
      } 
     }); 
    } 
    @Override 
    public void done(List<ParseObject> scoreList, ParseException e) { 
     if (e == null) { 
      Log.d("score", "Retrieved " + scoreList.size() + " _User"); 
      mOrganization.clear(); 
      mOrganization.addAll(scoreList); 
      ((IndividualsAdaptor) getListAdapter()).updateBackupList(mOrganization); 
      ((IndividualsAdaptor) getListAdapter()).notifyDataSetChanged(); 
     } else { 
      Log.d("score", "Error: " + e.getMessage()); 
     } 
    } 

    @Override 
    public void onListItemClick(android.widget.ListView l, android.view.View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 

     ParseObject prs = mOrganization.get(position); 
     String objectId = prs.getObjectId(); 
     Intent i = new Intent(getActivity(), SingleItemView.class); 
     i.putExtra("objectId", objectId); 
     startActivity(i); 

    } 
} 
+0

有U使用解析對象 – Athul

+0

檢查這個答案 http://stackoverflow.com/a/27793603/3310181 – param

回答

1

最後這段代碼編輯的一些代碼工作後形成答案的鏈接。通過此代碼你可以 爲每個Object id動態圖像動態

URL url = null; 
         try { 
          url = new URL("image url" + object.getString("image")); 
         } catch (MalformedURLException e1) { 
          e1.printStackTrace(); 
         } 
         Bitmap bmp = null; 
         try { 
          bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
         } catch (IOException e1) { 
          e1.printStackTrace(); 
         } 
         txtv2.setImageBitmap(bmp); 

         // something went wrong 
1

Manifest.xml定義<uses-permission android:name="android.permission.INTERNET" />

然後使用PicassoGilde,並從各自的實例解析圖像,並通過圖像URL你是從解析查詢。這些庫將解析URL並在ImageView中返回圖像。

其他類似的問題: Load image from url

How to load an ImageView by URL in Android?

+0

你的第一個鏈接一些編輯工作後,得到URL中檢索..但僅適用於一個佔位符圖像,你可以告訴如何佈置動態圖像檢查我的問題,我更新@Sneh Pandya –