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卡中呢?希望大神指点一下。 展开
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卡中呢?希望大神指点一下。 展开
2个回答
展开全部
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);
这种啊
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());
这样的来看吧。
展开全部
http://download.csdn.net/detail/dunhuacc1234/5904989
这是个往SD卡写入文件的共通类,直接使用即可。
这是个往SD卡写入文件的共通类,直接使用即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询