android图片下载器

news/2024/11/17 6:46:18/

android图片下载器

    

页面布局

<span style="white-space:pre">	</span><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="图片下载器" android:gravity="center"android:id="@+id/title"android:textSize="30sp"/><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/title"android:text="https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png"android:id="@+id/url"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/button"android:layout_below="@id/url"android:text="链接"android:onClick="onClick"/><ImageViewandroid:layout_below="@id/button"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/picture"android:src="@drawable/ic_launcher"android:scaleType="center"/>

页面布局使用相对布局RelativeLayout,有四个组件:

TextView:标题

EditText:输入url

Button:执行图片获取

ImageView:展示图片


    

    

图示



主页面Java代码

	public Button btn;public EditText et;public ImageView iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button) findViewById(R.id.button);et = (EditText) findViewById(R.id.url);iv = (ImageView) findViewById(R.id.picture);}

onCreate()方法获取XML组件的id

onClick(View v)方法监听按钮事件

public void onClick(View v){if(v.getId() == R.id.button){final String path = et.getText().toString().trim();if(path == null || "".equals(path)){//检查数据合法性Toast.makeText(getApplicationContext(), "图片地址不能为空", Toast.LENGTH_SHORT).show();return ;}Toast.makeText(getApplicationContext(), "图片加载中", Toast.LENGTH_SHORT).show();//http为耗时操作,不可以在UI线程(主线程)中运行程序new Thread(new Runnable(){public void run() {try{final Bitmap bitmap = ImageUtil.getImageURLGet(path);runOnUiThread(new Runnable(){public void run() {iv.setImageBitmap(bitmap);}});}catch(Exception e){e.printStackTrace();runOnUiThread(new Runnable(){public void run() {Toast.makeText(getApplicationContext(), "图片加载失败", Toast.LENGTH_SHORT).show();};});}}}).start();}}

按钮事件内部检验是否为链接按钮,检查数据合法性,url是否为空,接着获取互联网上的图片,然后用runOnUiThread()方法去把获取到的图片呈现出来,主线程是UI线程,负责UI处理,不支持耗时操作,所以要创建一个线程去访问www,下载好了图片后,呈现出来,如果出现异常,报“图片加载失败”错误。

    

    

访问互联网

public class ImageUtil {public static Bitmap getImageURLGet(String path)throws Exception{URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");//GET POSTconn.setConnectTimeout(5000);//设置超时时间int status = conn.getResponseCode();if(status == 200){InputStream inputStream = conn.getInputStream();byte[] bytes = StreamUtil.getBytesByInputStream(inputStream);Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);return bitmap;}throw new RuntimeException("超時");}}

链接一个URL路径,获取链接,设置超时时间,获取相应码,200代表成功,获取输入流,接收图片数据信息,创建一个Bitmap,返回。

    

Java获取图片数据信息

<span style="white-space:pre">	</span>public static byte[] getBytesByInputStream(InputStream in){ByteArrayOutputStream bos = new ByteArrayOutputStream();try{byte[] bytes = new byte[2048];int len = 0;while( (len = in.read(bytes))!= -1 ){bos.write(bytes,0,len);}}catch(Exception e){e.printStackTrace();}return bos.toByteArray();}

最后别忘了加上网络访问权限:

<uses-permission android:name="android.permission.INTERNET"/>




链接一张百度的图片




图示效果



http://www.ppmy.cn/news/861214.html

相关文章

android图片下载到本地

1.联网权限 <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.INTERNE…

uniapp 下载图片并保存到手机的相册中

使用unaipp开发的微信小程序中&#xff0c;下载图片并保存到手机的相册中。 创建公共方法文件 common.js&#xff0c;相关api可以自行查阅微信开发文档了解&#xff0c;参照代码如下&#xff1a; let baseUrl https://tese.com; const getUpLoadFile async function (fileId…

手机端长按图片下载

手机端长按图片下载 一版html长按事件下载js效果图 二版(贴合App)htmljs效果图 一版 html <div id"target"><img src"./timg.jfif" id"img1" class"img1"></img> </div> $(function () {// 函数名longpress…

Android下载网络图片并保存到相册

下载类&#xff0c;可以url下载到相册&#xff0c;记得在清单加权限&#xff0c;6.0代码动态加权限判断&#xff0c;下载图片要在子线程中下载&#xff0c;下载完后广播更新相册 在清单文件里面添加权限&#xff1a; <!--网络--><uses-permission android:name"…

html5 plus 图片下载保存到手机相册

html5plus 接口文档&#xff1a;http://www.html5plus.org/doc/zh_cn/webview.html vue 集成html5plus方法&#xff1a;https://blog.csdn.net/weixin_38641550/article/details/85235297 vue集成plus demo : https://github.com/Shaxin742/vue-webapp-demo 这个是基于html…

网上下载图片并保存到手机里面

MainActivity 里面用的是异步任务下载的图片 package com.jj.rikao_15;import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.A…

数学建模-拟合算法

这里的线性函数指的是参数为线性&#xff0c;而不是变量为线性。 yabx^2是线性的 用的比较多的是多项式拟合和自己定义的 拓展资料&#xff1a;工具箱曲线拟合类型评价解释 文件-导出代码 自动生成的代码修改图名和标签 如果不收敛&#xff0c;自己要修改初始值&#xf…

综合小实验

第一步&#xff1a;计划IP R1的环回&#xff1a;192.168.1.0/28 R2的环回&#xff1a;192.168.1.16/28 R123的O/O/0接口&#xff1a;192.168.1.32/28 R3-4&#xff1a;192.168.1.128/30 Vlan2&#xff1a;192.168.1.48/28 vlan3&#xff1a;192.168.1.64/28 192.168.1.0/24 0区…