2016-03-31 8 views
0

Hallo an alle lade ich ein paar Fragen ...Android Studio: Probleme Bilder von url

Ich mache neue App mit imageviews und Laden von Bildern aus Web, und ich schrieb den Code und zum ersten Mal die Bilder heruntergeladen werden aber wenn ich das nächste Mal öffne, lade ich dieselben Bilder wie beim ersten Mal und auf meinem Server ersetzte ich diese Bilder durch ein anderes (mit gleichem Namen und Erweiterung). Ich brauche deine Hilfe

hier ist mein Fragment Code:

package layout; 



import android.os.Bundle; 
    import android.os.CountDownTimer; 
    import android.support.v4.app.Fragment; 
    import android.support.v4.view.ViewPager; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.webkit.WebSettings; 
    import android.webkit.WebView; 
    import android.webkit.WebViewClient; 
    import android.widget.FrameLayout; 
    import android.widget.LinearLayout; 
    import android.widget.ProgressBar; 

    import com.example.pecurka.clubdraganm.R; 
    import com.loopj.android.image.SmartImageView; 


    public class second_frag extends Fragment { 
private ProgressBar progress; 
private String url; 



@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.second_frag, container, false); 
    url = getArguments().getString("msg"); 

    SmartImageView myImage2 = (SmartImageView) v.findViewById(R.id.my_image2); 
    myImage2.setImageResource(R.drawable.logo); 
    myImage2.setImageUrl(url); 



    FrameLayout r_frag2 = (FrameLayout) v.findViewById(R.id.reservieren_frag2); 
    r_frag2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      ViewPager pager = (ViewPager) getActivity().findViewById(R.id.viewPager); 
      pager.setVisibility(View.GONE); 

      LinearLayout indicator = (LinearLayout) getActivity().findViewById(R.id.indicator); 
      indicator.setVisibility(View.GONE); 

      progress = (ProgressBar) getActivity().findViewById(R.id.progressBar1); 
      progress.setVisibility(View.VISIBLE); 

      WebView web = (WebView) getActivity().findViewById(R.id.webView); 
      web.loadUrl("http://plastifikacija-bogdanic.com/dm/reservierung"); 
      web.setWebViewClient(new MyWebViewClient()); 

      WebSettings webSettings = web.getSettings(); 
      webSettings.setJavaScriptEnabled(true); 
      getActivity().setTitle("Reservierung"); 


     } 
    }); 



    return v; 





} 

public static second_frag newInstance(String text) { 

    second_frag f = new second_frag(); 
    Bundle b = new Bundle(); 
    b.putString("msg", text); 

    f.setArguments(b); 

    return f; 
} 


private class MyWebViewClient extends WebViewClient { 


    @Override 
    public void onPageFinished(WebView view, String url) { 
     progress.setProgress(100); 
     progress.setVisibility(View.GONE); 
     WebView web = (WebView) getActivity().findViewById(R.id.webView); 
     web.setVisibility(View.VISIBLE); 

     FrameLayout reservieren = (FrameLayout) getActivity().findViewById(R.id.submitbtn); 
     reservieren.setVisibility(View.VISIBLE); 

     super.onPageFinished(view, url); 

    } 


} 

}

ich drei Fragmente haben die gleiche wie diese und diese Fragmente werden in viewpager zeigt, und ich werde whn i Bilder ersetzen auf Server, dass die Bilder beim nächsten Start in meiner App automatisch geladen werden.

Dank

+0

Es scheint, SmartImageView erwartet einzigartige URL zum Aktualisieren von Bildern. ähnliche Frage wird hier diskutiert (http://stackoverflow.com/questions/29194496/smartimageview-i-would-like-to-force-refresh-and-not-caching) – uguboz

Antwort

0

Sie verwenden die SmartImageView Bibliothek, die das Bild auf der Festplatte für die zukünftige Belastung zwischenspeichert. Wie hier angegeben: http://loopj.com/android-smart-image-view/

Wenn Sie die Bilder auf dem Server aktualisiert haben, und wollen den Cache löschen, können Sie dies mit:

WebImageCache cache = new WebImageCache(context); 
cache.clear(); 

Oder Sie können die Cache-Dateien von der Festplatte auf manuell löschen Dieser Pfad: "/ web_image_cache /"