2012-08-23 147 views

回答

2

這解決了我的問題

`   `@Override 
      public boolean shouldOverrideUrlLoading (WebView view, String url) { 
       boolean shouldOverride = false; 
       // We only want to handle requests for image files, everything else the webview 
       // can handle normally 
       if (url.endsWith(".jpg")) { 
        shouldOverride = true; 
        Uri source = Uri.parse(url); 
        // Make a new request pointing to the mp3 url 
        DownloadManager.Request request = new DownloadManager.Request(source); 
        // Use the same file name for the destination 
        File destinationFile = new File (destinationDir, source.getLastPathSegment()); 
        request.setDestinationUri(Uri.fromFile(destinationFile)); 
        // Add it to the manager 
        manager.enqueue(request); 
       } 
       return shouldOverride; 
      }`` 

確保添加權限下載管理器,SD讀,寫SD!

2

我認爲最好的辦法是解析頁面的html代碼並獲取圖片url。

+0

我的目的是通過下載將這些圖像(顯示在網站的webview上)保存到SD卡中。 –

0

只需使用webview加載圖像的URL即可。

+0

我的目的是通過下載將這些圖像(顯示在網站的webview上)保存到SD卡中。 –

0
webview.setWebViewClient(new WebViewClient(){ 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 


     if(url.contains("http://m.dudamobile.com/?source=DM_DIRECT")){ 

        DownloadManager dm = (DownloadManager)getSystemService(DOWNLOAD_SERVICE); 
       Request request = new Request(
         Uri.parse(url)); 
       enqueue = dm.enqueue(request); 
      return true; 
     } 

     else 
       { 
        view.loadUrl(url); 
        return true; 
       } 
}} 

//register your broadcast reciever of Download manager in the activity 

BroadcastReceiver receiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      String action = intent.getAction(); 
      if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) { 
       long downloadId = intent.getLongExtra(
         DownloadManager.EXTRA_DOWNLOAD_ID, 0); 
       Query query = new Query(); 
       query.setFilterById(enqueue); 
       try{ 
       Cursor c = dm.query(query); 
       if (c.moveToFirst()) { 
        int columnIndex = c 
          .getColumnIndex(DownloadManager.COLUMN_STATUS); 
        if (DownloadManager.STATUS_SUCCESSFUL == c 
          .getInt(columnIndex)) { 

        // ImageView view = (ImageView) findViewById(R.id.imageView1); 
         String uriString = c 
           .getString(c 
               .getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)); 
         mNotificationManager.notify(1, notification); 
         // view.setImageURI(Uri.parse(url1)); 
         /* Intent i = new Intent(); 
         i.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS); 
         startActivity(i);*/ 
        } 
        } 
       }catch(NullPointerException e) 
       { 
        Toast.makeText(getApplicationContext(),"Item not downloadable :(",  Toast.LENGTH_LONG).show(); 

       } 
      } 
     } 
    }; 
    registerReceiver(receiver, new IntentFilter(
     DownloadManager.ACTION_DOWNLOAD_COMPLETE)); 
} 

`