2015-06-14 42 views
1
我使用 https://github.com/daimajia/AndroidImageSlider采用滑盖

三个图像。而这里是我已经试过在我AsyncTask负载三个图像从Json Data使用的AsyncTask加载在daimajia-AndroidImageSlider两个以上的图像与jsonData

public class AsyncHttpTask extends AsyncTask<String, Void, Integer> { 
     public ProgressDialog pDialog; 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(MainActivity.this); 
      pDialog.setIndeterminate(false); 
      pDialog.setMessage("Loading, Please wait..."); 
      pDialog.setCancelable(true); 
      pDialog.show(); 
     } 

     @Override 
     protected Integer doInBackground(String... params) { 
      Integer result = 0; 
      HttpURLConnection urlConnection; 

      try { 
       /* forming th java.net.URL object */ 
       URL url = new URL(params[0]); 

       urlConnection = (HttpURLConnection) url.openConnection(); 

       /* for Get request */ 
       urlConnection.setRequestMethod("GET"); 

       int statusCode = urlConnection.getResponseCode(); 

       /* 200 represents HTTP OK */ 
       if (statusCode == 200) { 

        BufferedReader r = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
        StringBuilder response = new StringBuilder(); 
        String line; 
        while ((line = r.readLine()) != null) { 
         response.append(line); 
        } 

        parseResult(response.toString()); 

        result = 1; 

       }else{ 

        result = 0; //"Failed to fetch data!"; 

       } 

      } catch (Exception e) { 
       Toast.makeText(MainActivity.this, e.getLocalizedMessage(), Toast.LENGTH_SHORT).show(); 
      } 

      return result; //"Failed to fetch data!"; 
     } 

     @Override 
     protected void onPostExecute(Integer result) { 

      /* Download complete. Lets update UI */ 
      if (result == 1) { 
       adapter = new MyRecyclerAdapter(MainActivity.this, feedItemList); 
       mmRecyclerView.setAdapter(adapter); 
       pDialog.dismiss(); 
      } else { 
       Toast.makeText(MainActivity.this, "Failed to fetch data!", Toast.LENGTH_SHORT).show(); 

      } 
     } 
    } 

课程负荷这一点,我们需要使用的Oncreate此:

final String url = "http://url/Data.json"; //json data url 
     new AsyncHttpTask().execute(url); //execute the json data 

所以,我有三个形象在我JsonData

"Main-header": [ 
    { 

    "HeaderImg1": "http://url/Main1.jpg", 
    "Title": "title 1" 
    }, 
    { 
    "HeaderImg2": "http://url/Main2.jpg", 
    "Title": "title 2" 
    }, 
    { 
    "HeaderImg3": "http://url/Main2.jpg", 
    "Title": "title 3" 
    } 
    ] 

//我JsonData工作不用其他任何问题。但是,

我能为演出做这个滑块这三张图片如上JsonData

编辑:这里就是我和这个工作对我的onCreate而这一点,工作得很好,但我从加载JSON数据需要:

mDemoSlider = (SliderLayout) findViewById(R.id.slider); 
     HashMap<String, String> url_maps = new HashMap<>(); 
     url_maps.put("title1", "http://url/pic1.jpg"); 
     url_maps.put("title2", "http://url/pic3.jpg"); 
     url_maps.put("title3", "http://url/pic3.jpg"); 
     for (String name : url_maps.keySet()) { 
      TextSliderView textSliderView = new TextSliderView(this); 
      // initialize a SliderLayout 
      textSliderView 
        .description(name) 
        .image(url_maps.get(name)) 
        .setScaleType(BaseSliderView.ScaleType.Fit); 
      //add your extra information 
      textSliderView.bundle(new Bundle()); 
      textSliderView.getBundle() 
        .putString("extra", name); 
      mDemoSlider.addSlider(textSliderView); 
     } 
     mDemoSlider.setPresetTransformer(SliderLayout.Transformer.Accordion); 
     mDemoSlider.setPresetIndicator(SliderLayout.PresetIndicators.Right_Bottom); 
     mDemoSlider.setCustomAnimation(new DescriptionAnimation()); 
     mDemoSlider.setDuration(6000); 

任何帮助表示赞赏。

干杯!

+0

你需要一次拿到3张图片,你试图实现的是什么? –

+0

hi.because我使用这个滑块,我不认为它是needed.see我最后编辑please.i加载原始代码加载三image.but我需要使用这从JsonData这是我需要的。 – Mohsen

+1

这很奇怪!你要求显示jsonData为: “主报头”:[{ “HeaderImg1”: “HTTP://url/Main1.jpg”, “标题”: “标题1” },{ “HeaderImg2”: “HTTP://url/Main2.jpg”, “标题”: “标题2” },{ “HeaderImg3”: “HTTP://url/Main2.jpg”, “标题“:”标题3“ } ] –

回答

2

这就是你应该怎么做的。在Asynctask的onPostExecute方法中使用此代码。

   arraylist = new ArrayList<HashMap<String, String>>(); 
       JSONObject jsonResponse; 
       try { 
        jsonResponse = new JSONObject(result); 
        JSONArray jsonMainNode = jsonResponse.optJSONArray("Main-header"); 

        int lengthJsonArr = jsonMainNode.length(); 
        for(int i=0; i < lengthJsonArr; i++) 
        { 
         HashMap<String, String> map = new HashMap<String, String>(); 
         JSONObject jsonChildNode = jsonMainNode.getJSONObject(i); 


         map.put(jsonChildNode.getString("Title"),jsonChildNode.getString("HeaderImg2")); 
         arraylist.add(map); 
         for(String name : map.keySet()){ 
          TextSliderView textSliderView = new TextSliderView(MainActivity.this); 

          textSliderView 
            .description(name) 
            .image(map.get(name)) 
            .setScaleType(BaseSliderView.ScaleType.Fit) 
            .setOnSliderClickListener(MainActivity.this); 

          textSliderView.bundle(new Bundle()); 
          textSliderView.getBundle() 
            .putString("extra", name); 

          mDemoSlider.addSlider(textSliderView); 
         } 
         mDemoSlider.setPresetTransformer(SliderLayout.Transformer.Accordion); 
         mDemoSlider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom); 
         mDemoSlider.setCustomAnimation(new DescriptionAnimation()); 
         mDemoSlider.setDuration(4000); 
         mDemoSlider.addOnPageChangeListener(MainActivity.this); 
        } 


       } catch (JSONException e) { 

        e.printStackTrace(); 
       } 


      } 
相关问题