Android实现网络图片浏览功能
发布时间 - 2026-01-11 01:42:32 点击率:次我们在上网的过程中经常看到各种图片,那你知道它是如何实现的吗?接下来就让我们一块探讨一下。

网络图片的浏览可以分为俩部分,基本的页面布局与界面交互,让我们一步步的来编写。
基本布局很简单,只需要有一个输入图片链接的EditText,一个浏览按钮,一个ImageView就差不多了。下面是简单代码。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/iv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
<EditText
android:id="@+id/et_path"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="请输入图片路径"
android:maxLines="1" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="click"
android:text="浏览" />
</LinearLayout>
值得注意的是这里面的weight不是权重,而是渲染优先级,weight越大,优先级越低。
最重要的自然是界面交互,输入图片的指定地址,便可以将服务器返回的图片展示在界面上,具体如下
package cn.edu.bzu.imageviewdemo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
protected static final int CHANGE_UI = 1;
protected static final int ERROR = 2;
private EditText et_path;
private ImageView iv;
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what == CHANGE_UI){
Bitmap bitmap = (Bitmap) msg.obj;
iv.setImageBitmap(bitmap);
}else if(msg.what == ERROR){
Toast.makeText(MainActivity.this, "显示图片错误", 0).show();
}
};
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_path = (EditText) findViewById(R.id.et_path);
iv = (ImageView) findViewById(R.id.iv);
}
public void click(View view) {
final String path = et_path.getText().toString().trim();
if (TextUtils.isEmpty(path)) {
Toast.makeText(this, "图片路径不能为空", Toast.LENGTH_SHORT).show();
} else {
new Thread() {
public void run() {
try {
URL url = new URL(path); //创建URL对象
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
// 设置请求的方式
conn.setRequestMethod("GET");
//设置超时时间
conn.setConnectTimeout(5000);
int code = conn.getResponseCode();
if (code == 200) {
InputStream is = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(is);
//iv.setImageBitmap(bitmap);
Message msg = new Message();
msg.what = CHANGE_UI;
msg.obj = bitmap;
handler.sendMessage(msg);
} else {
Message msg = new Message();
msg.what = ERROR;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
Message msg = new Message();
msg.what = ERROR;
handler.sendMessage(msg);
}
};
}.start();
}
}
}
核心之处便是通过URL对象获取HttpURLConnection,获取服务器返回的输入流
这便是简单的测试结果。有问题欢迎评论交流!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android网络图片浏览功
# Android图片浏览
# Android 网络图片查看显示的实现方法
# Android读取本地或网络图片并转换为Bitmap
# Android 异步获取网络图片并处理导致内存溢出问题解决方法
# Android显示网络图片实例
# Android 下载网络图片并显示到本地
# 简单实现Android读取网络图片到本地
# Android使用线程获取网络图片的方法
# 在Android的应用中实现网络图片异步加载的方法
# Android 读取sdcard上的图片实例(必看)
# Android sdcard实现图片存储 、联网下载
# Android开发实现加载网络图片并下载至本地SdCard的方法
# 的是
# 让我们
# 之处
# 最重要
# 它是
# 那你
# 很简单
# 请输入
# 便可
# 只需要
# 越大
# 这里面
# 大家多多
# 就差
# 如何实现
# 为空
# 可以分为
# 过程中
# 就让我们
# 有一个
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
晋江文学城电脑版官网 晋江文学城网页版直接进入
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
Laravel中的Facade(门面)到底是什么原理
java中使用zxing批量生成二维码立牌
如何实现建站之星域名转发设置?
Laravel如何使用.env文件管理环境变量?(最佳实践)
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
如何快速搭建个人网站并优化SEO?
iOS正则表达式验证手机号、邮箱、身份证号等
如何在云指建站中生成FTP站点?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
想要更高端的建设网站,这些原则一定要坚持!
潮流网站制作头像软件下载,适合母子的网名有哪些?
米侠浏览器网页背景异常怎么办 米侠显示修复
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
php 三元运算符实例详细介绍
如何快速重置建站主机并恢复默认配置?
Python进程池调度策略_任务分发说明【指导】
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
浅述节点的创建及常见功能的实现
香港服务器租用费用高吗?如何避免常见误区?
如何登录建站主机?访问步骤全解析
Laravel怎么实现验证码(Captcha)功能
制作公司内部网站有哪些,内网如何建网站?
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel怎么清理缓存_Laravel optimize clear命令详解
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
如何用wdcp快速搭建高效网站?
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
南京网站制作费用,南京远驱官方网站?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
,怎么在广州志愿者网站注册?
详解Huffman编码算法之Java实现
如何在腾讯云服务器快速搭建个人网站?
七夕网站制作视频,七夕大促活动怎么报名?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
公司网站制作价格怎么算,公司办个官网需要多少钱?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
android nfc常用标签读取总结
如何快速生成凡客建站的专业级图册?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
移动端脚本框架Hammer.js
如何快速辨别茅台真假?关键步骤解析

