Загрузите изображение с веб-сайта Android. Где эти изображения сохранены?
Я создал приложение для Android с веб-браузером и добавил опцию "долгое нажатие для сохранения изображения".
код работает без проблем, и он также загружает изображение, я могу открыть загруженное изображение из панели уведомлений, но я не знаю, где оно сохранено. Я искал каждую папку моего хранилища, но я не мог найти файл. вот мой код для моего "контекстного меню"
//To save image from web view
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
// Get the web view hit test result
final WebView.HitTestResult result = myWebView.getHitTestResult();
/*
WebView.HitTestResult
IMAGE_TYPE
HitTestResult for hitting an HTML::img tag.
SRC_IMAGE_ANCHOR_TYPE
HitTestResult for hitting a HTML::a tag with src=http + HTML::img.
*/
// If user long press on an image
if (result.getType() == WebView.HitTestResult.IMAGE_TYPE ||
result.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
// Set the title for context menu
menu.setHeaderTitle("CONTEXT MENU");
// Add an item to the menu
menu.add(0, 1, 0, "Save Image")
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
// Get the image url
String imgUrl = result.getExtra();
// If this is an image url then download it
if (URLUtil.isValidUrl(imgUrl)) {
// Initialize a new download request
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(imgUrl));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
downloadManager.enqueue(request);
Toast.makeText(myContext, "image saved.", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(myContext, "Invalid image url.", Toast.LENGTH_SHORT).show();
}
return false;
}
});
1 ответ
Это должно сохранить изображение в папке загрузок. Если там нет сохранения, Вы можете внести некоторые изменения в код
request.setDestinationInExternalPublicDir(
Environment.DIRECTORY_DOWNLOADS, //Download folder
URLUtil.guessFileName(DownloadImageURL, null, null)); //Name of file
DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Вы должны предоставить разрешение на хранение в файле манифеста
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Также предоставьте разрешение программно, и теперь вы можете сохранить это изображение в любом месте, которое вы хотите указать.