安卓如何实现输入url通过url将网络资源下载并储存到本地(无论什么文件类型都可以下载)

2025-03-23 22:32:45
推荐回答(3个)
回答1:

主要代码
package com.android.xiong.urltest;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.widget.ImageView;

public class MainActivity extends Activity {
ImageView show;
Bitmap bitmap;
Handler handler = new Handler() {

@Override
public void handleMessage(Message msg) {
if (msg.what == 0x123) {
// 使用ImageView显示该图片
show.setImageBitmap(bitmap);

}
}

};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show = (ImageView) findViewById(R.id.show);

new Thread() {

@Override
public void run() {
// 定义一个URL对象
URL url;
try {
url = new URL(
图片);
// 打开该URL的资源输入流
InputStream is = url.openStream();
// 从InputStream中解析出图片
bitmap = BitmapFactory.decodeStream(is);
// 发送消息
handler.sendEmptyMessage(0x123);
is.close();
// 再次打开RL对应的资源输入流
is = url.openStream();
// 打开手机文件对应的输出流
OutputStream os = openFileOutput("KEQIANG.JPG", MODE_APPEND);
byte[] buff = new byte[1024];
int hasRead = 0;
// 将URL资源下载到本地
while ((hasRead = is.read(buff)) > 0) {
os.write(buff, 0, hasRead);
}
is.close();
os.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}.start();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

[html] view plain copy
xmlns:tools=网址
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >

android:id="@+id/show"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/hello_world"/>



[html] view plain copy

         android:name="android.permission.INTERNET"/>

回答2:

你说的很多都行不通,才是对的。
1 手机app方式,资源是zip和rar就是下载。是apk就是安装。
2 手机网页方式,同样是这样的img显示图片,zip下载apk安装程序,html打开网页。
你说无论什么文件类型都可以下载。完全乱了网络协议。

回答3:

你可以搜一下xUtils框架,里面有个HttpUtils模块就是专门实现这个功能的