URLから画像を取得し、デバイスのメモリに保存します。私はこれでした:ファイルを作成するビットマップ6.0
new AsyncTask<String, Void, Bitmap>() {
protected Bitmap doInBackground(String... iUrl) {
Bitmap bitmap = null;
try {
URL url = new URL("http://lookw.ru/1/73/1380310809-pitstsa-ch1--16.jpg");
bitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream());
String filepath = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator + "scetchpad";
File dir = new File(filepath);
File file = new File(dir, "pizza.png");
FileOutputStream fileOutputStream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 85, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
Log.d("LOGI", filepath);
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
ImageView imageView = (ImageView) findViewById(R.id.imageView);
assert imageView != null;
imageView.setImageBitmap(bitmap);
}
}.execute();
許可
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
私は持っている私のタブレット(アンドロイド4.1)が、私は自分の携帯電話でそれをテスト(小米科技ミ最大アンドロイド6.0)にこのコード作業いくつかの問題。
11-25 18:39:56.260 19383-19480/com.vkramarenko.myapplication W/System.err: java.io.FileNotFoundException: /storage/emulated/0/scetchpad/pizza.png: open failed: ENOENT (No such file or directory)
11-25 18:39:56.260 19383-19480/com.vkramarenko.myapplication W/System.err: at libcore.io.IoBridge.open(IoBridge.java:452)
11-25 18:39:56.260 19383-19480/com.vkramarenko.myapplication W/System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
11-25 18:39:56.260 19383-19480/com.vkramarenko.myapplication W/System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:72)
11-25 18:39:56.260 19383-19480/com.vkramarenko.myapplication W/System.err: at com.vkramarenko.myapplication.MainActivity$1.doInBackground(MainActivity.java:47)
11-25 18:39:56.261 19383-19480/com.vkramarenko.myapplication W/System.err: at com.vkramarenko.myapplication.MainActivity$1.doInBackground(MainActivity.java:38)
11-25 18:39:56.261 19383-19480/com.vkramarenko.myapplication W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:295)
11-25 18:39:56.261 19383-19480/com.vkramarenko.myapplication W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
11-25 18:39:56.261 19383-19480/com.vkramarenko.myapplication W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
11-25 18:39:56.261 19383-19480/com.vkramarenko.myapplication W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
11-25 18:39:56.261 19383-19480/com.vkramarenko.myapplication W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
11-25 18:39:56.261 19383-19480/com.vkramarenko.myapplication W/System.err: at java.lang.Thread.run(Thread.java:818)
11-25 18:39:56.261 19383-19480/com.vkramarenko.myapplication W/System.err: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
11-25 18:39:56.261 19383-19480/com.vkramarenko.myapplication W/System.err: at libcore.io.Posix.open(Native Method)
11-25 18:39:56.262 19383-19480/com.vkramarenko.myapplication W/System.err: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
11-25 18:39:56.262 19383-19480/com.vkramarenko.myapplication W/System.err: at libcore.io.IoBridge.open(IoBridge.java:438)
11-25 18:39:56.262 19383-19480/com.vkramarenko.myapplication W/System.err: ... 10 more
そして私はまた、デバイスのメモリに(/ストレージ//0をエミュレートされた)このディレクトリが表示されていないが、いくつかのファイル(アプリのアイコン)は、このディレクトリに保存します。
はそれが –
'このディレクトリが表示されていない初期化した後' filepath'をログインしてくださいは、(/ストレージ//0をエミュレート)をデバイスのメモリに格納する。どのようにあなたは「見る」ことを試みているのですか?それはかなり正常な道です。それはそこにあります。 – greenapps