记录知识点:
1 用文件输出流把网络获取的文件写入
FileOutputStream fos = new FileOutputStream(shen);
byte[] b = new byte[2 * 1024];
int len;
if (bis != null) {
while ((len = bis.read(b)) != -1) {
fos.write(b, 0, len);
}
}
2. Bitmap 可以用路径来获取并转成对象
bitmap = BitmapFactory.decodeFile(File对象.getAbsolutePath());
3.判断SD卡是否存在,如果存在创建
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File sdcard = Environment.getExternalStorageDirectory();
File shen = new File(sdcard, "ss/ss.txt");
}
实例:
public class MainActivity extends Activity {
ImageView iv;
private String url = "http://img.hb.aicdn.com/573f5e8bcf728deabd4deb7f16665db8a707d37113a94-wx8CIw_fw658";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.imageview1);
new MyAsyncTask().execute(url);
}
class MyAsyncTask extends AsyncTask<String, Void, Bitmap> {
@Override
protected Bitmap doInBackground(String... params) {
URL url;
Bitmap bitmap = null;
FileOutputStream fos;
try {
url = new URL(params[0]);
URLConnection connection;
connection = url.openConnection();
InputStream in = connection.getInputStream();
BufferedInputStream bis = new BufferedInputStream(in);
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
File sdcard = Environment.getExternalStorageDirectory();
File shen = new File(sdcard, "ss/ss.txt");
fos = new FileOutputStream(shen);
byte[] b = new byte[2 * 1024];
int len;
if (bis != null) {
while ((len = bis.read(b)) != -1) {
fos.write(b, 0, len);
}
}
bitmap = BitmapFactory.decodeFile(shen.getAbsolutePath());
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
iv.setImageBitmap(result);
}
}
}
最后要主要 要加上权限
<!-- 访问网络 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 在SD卡中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 向SD卡写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />