2015-06-14 43 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(); 
       } 


      } 
相關問題