Android(安卓)网络:使用URL访问网络资源,ImageView,下载到本地
16lz
2021-01-26
简介:
访问一个网络上的图片,设置在ImageView上显示,并下载到本地
范例效果:
范例代码:
acitivity_main.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><ImageView android:id="@+id/show"android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="fitCenter"/></LinearLayout>
MainActivity:
public class URLTest extends Activity{ImageView mImageView;// 代表从网络下载得到的图片Bitmap mBitmap;Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg){if(msg.what == 0x123){// 使用ImageView显示该图片mImageView.setImageBitmap(mBitmap);}}};@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);mImageView = (ImageView) findViewById(R.id.show);new Thread(){public void run(){try{// 定义一个URL对象URL url = new URL("http://n.sinaimg.cn/transform/20150709/gf4o-fxewnih2154047.png");// 打开该URL对应的资源的输入流InputStream is = url.openStream();// 从InputStream中解析出图片mBitmap = BitmapFactory.decodeStream(is);// 发送消息、通知UI组件显示该图片handler.sendEmptyMessage(0x123);is.close();// 再次打开URL对应的资源的输入流is = url.openStream();// 打开手机文件对应的输出流OutputStream os = openFileOutput("crazyit.png", MODE_WORLD_READABLE);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 (Exception e){e.printStackTrace();}}}.start();}}
更多相关文章
- Qt 打开安卓相册选择图片并获取图片的本地路径
- Android(安卓)时间选择器(TimeBucketSelector)
- Android(安卓)Studio---创建java项目
- Android(安卓)图片平铺实现方式
- Android之kotlin里面本地图片BitmapFactory.decodeFile转bitmap
- [IMX6Q][Android6.0.1_r3]之系统屏幕显示默认设置更改
- Google Map无法显示:Error contacting Google servers. XXX authe
- Android(安卓)整理常用的第三方库
- android webview 介绍