2017-06-20 54 views
0

这是我的代码。 图像空间保持空白。未加载。 这里我的错误是什么?
我需要什么样的代码。 给予更多的定义。image not loading使用json from url

public class MainActivity extends AppCompatActivity { 

     private String TAG = MainActivity.class.getSimpleName(); 

     private ProgressDialog progressDialog; 
     private ListView listView; 

     // JSON data url 
     private static String Jsonurl = "http://microblogging.wingnity.com/JSONParsingTutorial/jsonActors"; 
     ArrayList<HashMap<String, String>> contactJsonList; 

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

      contactJsonList = new ArrayList<>(); 
      listView = (ListView) findViewById(R.id.listview); 
      new GetContacts().execute(); 
     } 

     private class GetContacts extends AsyncTask<Void, Void, Void> { 

      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       // Showing progress dialog 
       progressDialog = new ProgressDialog(MainActivity.this); 
       progressDialog.setMessage("Please wait..."); 
       progressDialog.setCancelable(false); 
       progressDialog.show(); 
      } 

      @Override 
      protected Void doInBackground(Void... arg0) { 
       HTTPHandler httpHandler = new HTTPHandler(); 

       // request to json data url and getting response 
       String jsonString = httpHandler.makeServiceCall(Jsonurl); 
       Log.e(TAG, "Response from url: " + jsonString); 
       if (jsonString != null) { 
        try { 
         JSONObject jsonObject = new JSONObject(jsonString); 
         // Getting JSON Array node 
         JSONArray contacts = jsonObject.getJSONArray("actors"); 

         for (int i = 0; i < contacts.length(); i++) { 

          JSONObject c = contacts.getJSONObject(i); 
          String name = c.getString("name"); 
          String country = c.getString("country"); 
          String spouse = c.getString("spouse"); 
          String dob = c.getString("dob"); 
          String description = c.getString("description"); 
          String children = c.getString("children"); 
          String image = c.getString("image"); 

          // tmp hash map for single contact 
          HashMap<String, String> contact = new HashMap<>(); 

          // adding each child node to HashMap key => value 
          contact.put("name", name); 
          contact.put("country", country); 
          contact.put("spouse", spouse); 
          contact.put("dob", dob); 
          contact.put("description", description); 
          contact.put("children", children); 
          contact.put("image", image); 

          // adding contact to contact list 
          contactJsonList.add(contact); 
         } 
        } catch (final JSONException e) { 
         Log.e(TAG, "Json parsing error: " + e.getMessage()); 
         runOnUiThread(new Runnable() { 
          @Override 
          public void run() { 
           Toast.makeText(getApplicationContext(), "Json parsing error: " + e.getMessage(),Toast.LENGTH_LONG).show(); 
          } 
         }); 
        } 
       } else { 
        Log.e(TAG, "Could not get json from server."); 
        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          Toast.makeText(getApplicationContext(),"Could not get json from server.",Toast.LENGTH_LONG).show(); 
         } 
        }); 
       } 
       return null; 
      } 

      @Override 
      protected void onPostExecute(Void result) { 
       super.onPostExecute(result); 
       // Dismiss the progress dialog 
       if (progressDialog.isShowing()) 
        progressDialog.dismiss(); 

       /**  * Updating parsed JSON data into ListView * */ 
       ListAdapter adapter = new SimpleAdapter(MainActivity.this, contactJsonList, R.layout.row, 
         new String[]{"name","country", "spouse", "dob", "description", "children", "image"}, 
         new int[]{R.id.name, R.id.country, R.id.spouse, R.id.dob, R.id.description, R.id.children, R.id.imageview}); 

       listView.setAdapter(adapter); 
      } 
     } 
    } 

感谢您的帮助

+0

您正在阅读的图像我猜这是一个网址。所以你必须从你的适配器中的图像url加载你的位图。所以检查你的适配器代码。 – Akash

回答

0

您可以将用户滑翔库从URL加载图像看下面的代码,它可以帮助你以简单的方式

编译这一程序

compile 'com.github.bumptech.glide:glide:4.0.0-RC0' 

比这样的加载图片

Glide.with(HomeClass.this) 
      .load(userProfileUrl) 
      .centerCrop() 
      .diskCacheStrategy(DiskCacheStrategy.NONE) 
      .skipMemoryCache(true) 
      .dontAnimate() 
      .into(imageview); 
0

你想加载从url的图像列表?然后 检查下面的链接,有详细的例子使用json与volly库处理图像列表。 Example

我希望这会帮助你。