android开发中下载图片并且保存到sd卡中,不通过点击什么的怎么完成,代码如下

packagecom.fkjava.demopublicclassMainActivityextendsActivity{ImageViewshow;Bitmapbitm... package com.fkjava.demo

public class MainActivity extends Activity {
ImageView show;
Bitmap bitmap;
private String fileName;
private final static String ALBUM_PATH = Environment.getExternalStorageDirectory() + "/download_test/";
Handler handler = new Handler(){
public void handleMessage(Message msg) {
if(msg.what == 0x123){
show.setImageBitmap(bitmap);
}
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show = (ImageView)findViewById(R.id.show);
fileName = "test.png";
new Thread(){
public void run() {
try{
URL url = new URL("http://g.hiphotos.baidu.com/album/w%3D2048/sign=aa994ca4eaf81a4c2632ebc9e3126259/b3b7d0a20cf431ad6d45bde94a36acaf2fdd984f.jpg");
InputStream is = url.openStream();
bitmap = BitmapFactory.decodeStream(is);
handler.sendEmptyMessage(0x123);
is.close();
is = url.openStream();
OutputStream os = openFileOutput("test.png", MODE_WORLD_READABLE);
byte[] buff = new byte[1024];
int hasRead = 0;
while((hasRead = is.read(buff)) > 0){
os.write(buff, 0, hasRead);
}
is.close();
os.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}.start();
};
}
这个代码只能实现下载,但是怎么将它存到手机的sd卡中呢?希望大神指点一下。
展开
 我来答
dut_wish
2013-10-08 · TA获得超过1634个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:505万
展开全部
OutputStream os = openFileOutput("test.png", MODE_WORLD_READABLE);
byte[] buff = new byte[1024];
int hasRead = 0;
while((hasRead = is.read(buff)) > 0){
os.write(buff, 0, hasRead);
}
is.close();
os.close();

你这里不是已经存文件了吗,只是这种是存在app的私有目录中
如果要存在指定位置,就用
FileOutputStream fout = new FileOutputStream(path,append);
这种啊
更多追问追答
追问
那这个需要怎么修改呢?只要把它加入就行了吗?我试了很多次都没有弄好,请大神指导一下,谢谢。
追答
OutputStream os = openFileOutput("test.png", MODE_WORLD_READABLE);

这句替换成下面的片段:
File testFile = new File(Environment.getExternalStorageDirectory(), "test.png");

FileOutputStream os = new FileOutputStream(testFile);

这样就是在你的sd卡根目录下建立test.png来保存图片文件。
具体你的手机上是什么位置,把testFile的绝对路径打印出来看看就行。
插一条
Log.d("test", testFile.getAbsolutePath());
这样的来看吧。
dunhuacc12
2013-10-08 · TA获得超过184个赞
知道答主
回答量:42
采纳率:0%
帮助的人:26万
展开全部
http://download.csdn.net/detail/dunhuacc1234/5904989
这是个往SD卡写入文件的共通类,直接使用即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式