【问题标题】:Android Studio: Problems loading images from urlAndroid Studio:从 url 加载图像时出现问题
【发布时间】:2016-03-31 09:28:45
【问题描述】:

大家好,我有一些问题......

我正在使用 imageviews 制作新应用程序并从网络加载图像,我编写了代码并第一次下载了图像,但是下次当我打开应用程序时,它会加载与第一次相同的图像,并且在我的服务器上我替换了这个与其他图像(具有相同的名称和扩展名)。我需要你的帮助

这是我的片段代码:

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);

    }


}

}

我有三个与这个相同的片段,并且这个片段显示在 viewpager 中,我将替换服务器上的图像,这些图像会在下次启动时在我的应用程序中自动加载。

谢谢

【问题讨论】:

  • 看来 SmartImageView 需要唯一的 url 来刷新图像。讨论了类似的问题here

标签: java android


【解决方案1】:

您正在使用 SmartImageView 库,该库将图像缓存在磁盘上以供将来加载。如此处所述:http://loopj.com/android-smart-image-view/

如果您已更新服务器上的图像并希望清除缓存,您可以使用:

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

或者您可以手动从磁盘中删除该路径上的缓存文件:“/web_image_cache/”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-13
    • 2021-09-07
    • 2015-11-22
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多