Android ImageView如何加载网络和本地图片资源

Android UI 组件系列(三):ImageView 使用技巧与图像加载 在本篇博客中,我们详细探讨了 ImageView 作为 Android 开发中常用的 UI 组件的基本用法和一些常见的使用技巧。通过介绍 ImageView 的常用属性、如何加载网络图片、以及如何实现图片的圆角和裁剪效果,我们展示了如何充分利用 Glide 这样的强大库来优化图片加载和处理过程。 阅读详情
  1. package com.android.antking.imageview;  
  2.   
  3. import java.io.InputStream;  
  4. import java.net.HttpURLConnection;  
  5. import java.net.MalformedURLException;  
  6. import java.net.URL;  
  7.   
  8. import android.app.Activity;  
  9. import android.graphics.Bitmap;  
  10. import android.graphics.BitmapFactory;  
  11. import android.os.Bundle;  
  12. import android.util.Log;  
  13. import android.view.View;  
  14. import android.widget.ImageView;  
  15.   
  16. public class MainActivity extends Activity {  
  17.     //定义一个图片显示控件  
  18.     private ImageView imageView;  
  19.     /** Called when the activity is first created. */  
  20.     @Override  
  21.     public void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.main);  
  24.         //图片资源  
  25.         String url = "http://s16.sinaimg.cn/orignal/89429f6dhb99b4903ebcf&690";  
  26.         //得到可用的图片  
  27.         Bitmap bitmap = getHttpBitmap(url);  
  28.         imageView = (ImageView)this.findViewById(R.id.imageViewId);  
  29.         //显示  
  30.         imageView.setImageBitmap(bitmap);  
  31.          
  32.     }  
  33.     /** 
  34.      * 获取网落图片资源  
  35.      * @param url 
  36.      * @return 
  37.      */  
  38.     public static Bitmap getHttpBitmap(String url){  
  39.         URL myFileURL;  
  40.         Bitmap bitmap=null;  
  41.         try{  
  42.             myFileURL = new URL(url);  
  43.             //获得连接  
  44.             HttpURLConnection conn=(HttpURLConnection)myFileURL.openConnection();  
  45.             //设置超时时间为6000毫秒,conn.setConnectionTiem(0);表示没有时间限制  
  46.             conn.setConnectTimeout(6000);  
  47.             //连接设置获得数据流  
  48.             conn.setDoInput(true);  
  49.             //不使用缓存  
  50.             conn.setUseCaches(false);  
  51.             //这句可有可无,没有影响  
  52.             //conn.connect();  
  53.             //得到数据流  
  54.             InputStream is = conn.getInputStream();  
  55.             //解析得到图片  
  56.             bitmap = BitmapFactory.decodeStream(is);  
  57.             //关闭数据流  
  58.             is.close();  
  59.         }catch(Exception e){  
  60.             e.printStackTrace();  
  61.         }  
  62.           
  63.         return bitmap;  
  64.           
  65.     }  
  66. }  

从本地获取Bitmap对象方法
1.将文件转化为bitmap对象
public static final float DISPLAY_WIDTH = 200;
public static final float DISPLAY_HEIGHT = 200;
/**
 * 从path中获取图片信息
 * @param path
 * @return
 */
private Bitmap decodeBitmap(String path){
  BitmapFactory.Options op = new BitmapFactory.Options();
  //inJustDecodeBounds 
  //If set to true, the decoder will return null (no bitmap), but the out…
  op.inJustDecodeBounds = true;
  Bitmap bmp = BitmapFactory.decodeFile(path, op); //获取尺寸信息
  //获取比例大小
  int wRatio = (int)Math.ceil(op.outWidth/DISPLAY_WIDTH);
  int hRatio = (int)Math.ceil(op.outHeight/DISPLAY_HEIGHT);
  //如果超出指定大小,则缩小相应的比例
  if(wRatio > 1 && hRatio > 1){
    if(wRatio > hRatio){
      op.inSampleSize = wRatio;
    }else{
      op.inSampleSize = hRatio;
    }
  }
  op.inJustDecodeBounds = false;
  bmp = BitmapFactory.decodeFile(path, op);
  return bmp;
}
在通过BitmapFactory.decodeFile(String path)方法将突破转成Bitmap时,遇到大一些的图片,我们经常会遇到OOM(Out Of Memory)的问题。所以用到了我们上面提到的BitmapFactory.Options这个类。
2.通过二进制流Stream来获取

Bitmap bmp = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageFileUri), null,  bmpFactoryOptions);

Tessent ATPG进阶:解锁多种Fault Model的工程实践与选型指南 本文深入探讨Tessent ATPG中多种Fault Model的工程实践与选型策略,涵盖Stuck-at、Transition、Bridge等核心模型的应用场景与配置技巧。通过实际案例解析,展示如何组合不同Fault Model提升芯片测试覆盖率,特别针对汽车电子、超低功耗芯片等复杂场景提供专业解决方案。 阅读详情

相关推荐

四足机器人——机械结构

目录 一、四足机器人腿型: 1、并联腿 2、串联腿 3、 腿的布局(关节配置) 二、四足机器人足端设计: 三、四足机器人膝关节驱动: 1、皮带轮驱动: 2、四连杆或者推杆驱动 四、四足机器人机械整体结构设计细节 一、四足机器人腿型: 1、并联腿 优点:受力角度来说,并联腿比串联腿好,并联腿较为灵活。 2、串联腿 优点:运动范围大 3、 腿的布局(关节配置) 为了使机器人具有较好的稳定性,一般会采用比较低的重心。这就导致了机器人腿的髋关节位置需要位于机器人身体的两侧..

m0_58585940的博客 3万+

[Android]图片加载库Glide

Glide是一个快速高效的Android图片加载库,可以自动加载网络,本地文件,app资源中的文件,注重于平滑的滚动。添加依赖添加网络权限。Glide的介绍Glide的基本使用 指定图片的格式Glide占位符指定图片的大小过渡动画图片变换Generated APIGlide.with()方法用于创建一个加载图片的实例with()方法可以接收Context,Activity,Fragment类型的参数,这个参数的生命周期将会和加载的图片绑定在一起,如果传递的是activity,那么这个图片是和act

weixin_63357306的博客 5281

人工智能训练师技能等级认定四级技能考核试卷-样题1

本文为人工智能训练师四级技能考核试卷,包含六个实操考核项目,总分100分,考试时间150分钟。试卷涵盖数据处理、模型训练准备及系统维护等核心技能:1)垃圾分类数据集规范与处理(30分),要求评估数据格式并编写Python处理代码;2)学生成绩数据集分析(20分),涉及数据预处理、可视化及相关性分析;3)数据标注审核(10分),重点审核标注准确性;4)智能数据服务系统维护与优化(40分),包括安全帽数据集的项目创建、数据处理及平台协作。考核强调Python编程、数据处理平台操作及AI工作流程的实践能力。

weixin_42221934的博客 440

android使用ImageView加载本地SdCard图片和加载网络图片

android使用ImageView加载本地SdCard图片和加载网络图片   例子1:android加载自己文件夹的图片,使用R类   main.xml文件     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_hei

huang9012的专栏 1万+

ROS 2 Slam Toolbox实战:从零跑通2D激光建图

SLAM(同步定位与地图构建)是移动机器人实现自主导航的基础技术,其核心在于通过传感器数据实时估计位姿并构建环境栅格地图。slam_toolbox作为ROS 2 Humble及后续LTS版本官方主推的2D SLAM后端,采用图优化+闭环检测架构,兼顾实时性、鲁棒性与工程可维护性。相比cartographer和hector_slam,它原生支持ROS 2、参数精简、诊断友好,特别适合硬件资源有限、缺乏IMU或深度相机的差速机器人平台。本文聚焦真实部署场景,覆盖RPLIDAR等常见2D激光雷达与TurtleBo

weixin_30596165的博客 357

ubuntu17.04 UHD 驱动出错

ubuntu 17.04 源码安装UHD

xrh003的博客 1万+

Android用ImageView显示本地和网上的图片(转)

Android用ImageView显示本地和网上的图片(转)转自:http://www.cnblogs.com/zhwl/archive/2011/08/02/2124557.html ImageView是Android程序中经常用到的组件,它将一个图片显示到屏幕上。 在UI xml定义一个ImageView如下:public void onCreate(Bundle savedInstance

xingkong2016 551

YOLOv11改进 | 添加注意力篇 | 结合2024最新Mamba注意力机制MLLA助力yolov11有效涨点含二次创新C2PSA(全网独家首发改进)

本文给大家带来的改进机制是结合号称超越Transformer架构的Mamba架构的最新注意力机制MLLA,本文将其和我们YOLOv11进行结合,的原理是通过将Mamba模型的一些核心设计融入线性注意力机制,从而提升模型的性能。具体来说,MLLA主要整合了Mamba中的“忘记门”(forget gate)和模块设计(block design)这两个关键因素,同时MLLA通过使用位置编码(RoPE)来替代忘记门,从而在保持并行计算和快速推理速度的同时,提供必要的位置信息。

Snu77的博客 3870

Android ImageView 加载图片 (含scaleType 属性的详解)

一 ImageView 标签 二 adjustViewBounds属性 三 scaleType 属性的 值

m0_45877477的博客 3074

【NIPS 2022】时序精选论文07|Non-stationary Transformers: 引入非平稳性信息的平稳化序列预测模型(代码解读附源码)

整体代码框架基本上与传统 Transformer 类似,基本上只有在内嵌的注意力机制模块有区别,因此这里只对关键部分进行讲解,代码整体框架可参考 Transformer。非平稳时序很难预测,尤其对模型泛化性影响很大,试想下推理阶段的数据分布变了,模型很难适应这种变化。,比如很早以前的差分就是一种平稳化操作。序列平稳化能增强数据的可预测性,但这时也会带来一个问题,叫。,通过MLP层进行定义,使得参数可学习,以便于更好的融合到注意力网络中。代码中整体注意力的计算方式与原生Transformer类似,

ViolenceTemper的博客 1492

Qt实现思维导图功能5『纵向分布模式』

思维导图纵向分布模式:模式一

浮生流年的博客 1057

android本地图片,Android中ImageView实现选择本地图片并显示功能

运行结果:模拟器图库就三张 没办法~画质挺感人~一个隐式意图布局文件:xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent" >android:id="@+id/image_choose"android:layou...

weixin_39561431的博客 892

Qt软件开发: 开发MQTT客户端软件,模拟硬件登录各大主流MQTT平台完成通信

此软件是使用QT编写MQTT客户端(根据mqtt官方文档3.1.1,自己实现过程代码,没有使用其他库,稳定,方便移植),模拟硬件登录各大主流的MQTT物联网服务器,完成主题订阅、发布等操作,实现数据通信交互。 已经测试OneNET、阿里云IOT、华为云IOT、百度IOT、电信IOT、原子云IOT等等常用的物联网云平台,都可以正常实现数据通信,只要云平台支持标准MQTT协议都可以使用此软件进行登录测试。 特别是大家没有硬件,想测试与MQTT物联网云服务器通信的,此软件是非常的方便。使用简单,比官方的软件操作

1万+

判断ImageView的图片是否为默认

之前一直在找如何判断ImageView中的图片是网络加载的还是本地的,今天终于找到了。 参考地址:csdn博客和百度知道 imageView.setImageResource(R.drawable.pic);   如果直接使用ImageView的getdrawable方法获取图片,imageView.getDrawable().equals(context.getResources().ge

ouruolaxuhui的专栏 4382

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android学习之图片异步加载框架Picasso

原创地址:http://mcode114.com/android/network/picasso/ 项目地址:https://github.com/square/picasso 官网地址: http://square.github.io/picasso/ 类别:网络 开发环境:Android Studio Picasso Picasso是Square公司

linzhiyong的专栏 1780

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

databinding 入门 加载本地图片和加载网络图片

databinding 加载图片需要使用注解 下面 说下使用方法 还是先从布局开始把 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android...

小牧在一直在学习,在前进的道路上大家一起学习,进步。 5097

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

imageview加载本地和网络图片

ImageView是Android程序中经常用到的组件,它将一个图片显示到屏幕上。 在UI xml定义一个ImageView如下: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.myimage)...

weixin_34320159的博客 149

安卓ImageView在Java代码中设置图片

在Android开发中,我们可以通过Java代码为ImageView设置图片。这通常通过将图片资源ID分配给ImageView的src属性来实现。请注意,对于网络图片,你需要处理网络连接和可能的错误,这可能需要添加更多的代码。是你在布局XML文件中定义的ImageView的ID,而。这样的库来帮助你实现。如果你想要设置的是网络上的图片,那么你可以使用。是你想要设置的图片的资源ID。

用作学习记录 1152

Java代码中更改imageview中引用的图片

imageView.setImageBitmap(bm); //要求传递一个bitmap对象 imageView.setImageDrawable(drawable); //要求传递一个drawable对象 imageView.setImageResource(id); //要求传递一个资源ID 用ImageLoad这个开源库,可以加载本地图片,资源图片,网络图片等等...

yueyuanyu_123的博客 9837

ImageView 显示本地和网上的图片(转)

Android用ImageView显示本地和服务器的图片(转) ImageView是Android程序中经常用到的组件,它将一个图片显示到屏幕上。在UI xml定义一个ImageView如下: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState...

banchuo4077的博客 149

Android用ImageView显示本地和apache中的图片

ImageView是Android程序中经常用到的组件,它将一个图片显示到屏幕上。 在UI xml定义一个ImageView如下: public void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.lay

日月星辰的博客 401

android显示图片

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34085658的博客 100

android studio页面输出图片,android studio设置imageview显示图片

Map集合 总结(本人第一次写博客,部分内容有参照李刚老师的疯狂java系列图书,如有遗漏错误,请多指教,谢谢.) Java的集合类可分为Set.List.Map.Queue,其中Set.List.Queue都有共同 ...柬埔寨手机上网资费套餐(3G&sol;4G上网)柬埔寨三大运营商 Cellcard 官网套餐详情http://www.cellcard.com.kh/cellcar...

weixin_28950403的博客 1039

Android ImageView及其子类 介绍+实例,开发移动app公司

android:layout_height=“match_parent” android:orientation=“vertical”> <Button android:id="@+id/btn_next" android:layout_gravity=“center_horizontal” android:layout_width=“wrap_content” android:layout_marginTop="@dimen/dimen_20" android:layout_height=“w

m0_66144992的博客 186

Android开发-图像显示

Android开发-图像显示

m0_61787196的博客 551

Glide图片加载库的使用

http://www.cnblogs.com/whoislcj/p/5558168.html这篇文章写得很详细,我这里简单说一些 1.app的build.gradle的dependencies里面添加 compile 'com.github.bumptech.glide:glide:4.1.1' annotationProcessor 'com.github.bumptech....

weixin_30469895的博客 72
上一篇: Formatter格式化文本
下一篇: Java中==和equal有什么区别
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值