Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用webview下载图像_Android_Image_Webview - Fatal编程技术网

Android 使用webview下载图像

Android 使用webview下载图像,android,image,webview,Android,Image,Webview,我正在webview中显示来自移动网站的图库。如何从webview下载这些图像?webview是否有其他设置?我认为最好的方法是解析页面的html代码并获取图像url。我认为最好的方法是解析页面的html代码并获取图像url。只需使用webview加载图像的url。只需使用网络视图 webview.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String u

我正在webview中显示来自移动网站的图库。如何从webview下载这些图像?webview是否有其他设置?

我认为最好的方法是解析页面的html代码并获取图像url。

我认为最好的方法是解析页面的html代码并获取图像url。

只需使用webview加载图像的url。

只需使用网络视图

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

`这解决了我的问题

`          `@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写入添加权限

这解决了我的问题

`          `@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写入添加权限

我的目的是通过下载将这些图像(从网站显示在webview上)保存到sd卡中。我的目的是通过下载将这些图像(从网站显示在webview上)保存到sd卡中。我的目的是保存这些图像(从网站显示在webview上)下载到sd卡中。我的目的是通过下载将这些图像(从网站的webview上显示)保存到sd卡中。