安卓 加载服务器图片不显示图片,android 从服务器加载.9图
问题描述: APP启动时, 广告页的图片是从服务器上获取, 这个图片一般需要全屏显示, 这个怎么适配呢?
解决方法1: 如果使用android:scaleType="fitXY"属性, 图片肯定会拉伸. 这个时候我们会想到用.9图
解决方法2: 用两张图片叠加, 一张纯色背景图, 另一张我们的广告图, 背景图和广告的背景保持一致就可以了. 纯色的背景图怎么拉伸都无所谓了.
比较: 方法2显然不如方法1, 这里我们看看方法1.
尝试: 直接把.9图放到服务器上, 结果: 和普通图片没什么区别.
原理: 跑去网上看了一下才知道, 原来我们放在本地的.9图之所以能正常加载, 并不是ImageView直接加载的, 而是在编译的时候通过了转换, 最终才能被ImageView使用. 所以我们把.9图通过手动转换, 然后把转换后的图片放到服务器, 这样就可以直接使用了.
第一步: 制作.9图 我是用AS制作的, 如下图, 选择图片右键选择.
注意:
如果是.jpg是没有这个选项的, png图才有. 其它格式的图片没试过.
制作.9图不规范会报错, 一般只需要画上和左就可以了.
制作.9图.png
第二步: 转换
使用SDK里面的build-tools工具
在build-tools\26.02(版本号) 目录下打开cmd. 例如我目录: C:\Users\dell\AppData\Local\Android\sdk\build-tools\26.0.2.
然后输入命令.\aapt s -i .9图文件位置 -o 转换后文件位置.
例如: 源文件a.9.png 和 转换后的文件b.png都在\sdk\build-tools\26.0.2目录下. 那我直接在cmd里面输入: .\aapt s -i .\a.9.png -o .\b.png 就会生成b.png图片, 如下图:
转换.png
第三步: 本来以为这样就OK了, 结果图片还是被拉伸了, 一开始我怀疑是不是转换过程错了, 后来到网上去查了资料才知道, 还不能直接使用. 需要使用代码如下:
byte[] chunk = bitmap.getNinePatchChunk();
if(NinePatch.isNinePatchChunk(chunk)){
NinePatchDrawable npd = new NinePatchDrawable(getResources(), bitmap, chunk, new Rect(), null);
imageView.setImageDrawable(npd);
}else{
imageView.setImageBitmap(bitmap);
}
注意: if里面是加载.9图转换后的图片, else是普通图片, 如果不加判断直接用NinePatchDrawable加载图片的话, 普通图片会报错.
最后添加两张效果图. 为了让效果明显一点, 故意把imageView高缩短. 主要看中间的图标.
效果.9图.png
效果普通图.png
安卓 加载服务器图片不显示图片,android 从服务器加载.9图相关推荐
- 织梦网站上传服务器不显示图片,织梦网站图片不显示图片
织梦网站图片不显示图片 内容精选 换一换 在"文章列表"插件中,检查"设置 > 列表数目"的"显示文章条数"和"显示分页&q ...
- 华为云服务器怎样让网站显示不出来,云服务器网页不显示图片
云服务器网页不显示图片 内容精选 换一换 企业主机安全(Host Security Service,HSS)是提升服务器整体安全性的服务,通过主机管理.风险防御.入侵检测.安全运营.网页防篡改功能,可 ...
- 如何访问本地服务器图片不显示,如何访问云服务器的图片不显示图片
如何访问云服务器的图片不显示图片 内容精选 换一换 鲲鹏CentOS 7和中标麒麟NKASV 7云服务器安装图形化界面后,远程连接云服务器鼠标不可用.X86云服务器使用了cirrus虚拟显卡,鲲鹏云服 ...
- php访问服务器上图片不显示不出来,php显示云服务器上图片不显示图片
php显示云服务器上图片不显示图片 内容精选 换一换 初次使用AppCube,您可以通过阅读本入门,初步了解AppCube.建议您跟随文档,创建实例应用,在实操的过程中逐步学习AppCube.AppC ...
- html背景图片只显示一张图片,img只显示图片一部分 或 css设置背景图片只显示图片指定区域(示例代码)...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- html如何把图片在背景图一半,img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- 使用Python调用opencv学习(-)打开图片,显示图片
使用Python调用opencv学习(-)打开图片,显示图片 第一步是读取图片是用cv2.imread 第一个参数是图片的路径可以是绝对路径也可以是相对路径.第二个参数代表读取图片的格式 cv2.IM ...
- css 设置背景图一半_img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- php验证是否图片,php验证码图片不显示图片怎么办
php验证码图片不显示图片的解决办法:首先检查php是否安装gd扩展:然后在php目录下找到php.ini文件:最后将文件编码方式改为utf-8无DOM格式,并在header前清除缓存即可. PHP图 ...
最新文章
- matlab inviter,水中石
- 快速沃尔什变换(FWT)及K进制异或卷积快速子集变换(FST)讲解
- 8 关于数据仓库维度数据处理的方法探究系列——父子维
- Linux命令学习记录(六)
- [推荐]数据库索引碎片的自动重建或重组
- 视频中的目标检测与跟踪综述
- Mysql 添加字段 修改字段 删除字段
- LiveVideoStack线上交流分享 ( 六 ) —— VP9 Scalable Video Coding
- 聊聊高并发(二十三)解析java.util.concurrent各个组件(五) 深入理解AQS(三)
- ab flash player 8_FLASH 质子治疗的技术挑战
- 那些被.NET大厂拒绝的大佬们,究竟弱在哪里?
- C++ STL string的构造函数
- python中多对多替换_Python对指定文件内容进行全局替换
- SignalR与自托管Windows服务
- 华为hs8145v5如何改桥接_华为 光猫 HS8546V5 改 桥接模式 简易教程
- 130道Python练习题,涵盖基础内容的方方面面
- 使用php实现自动获取一个获取文章标题生成主题关键词功能源码
- python怎么解题_农夫过河问题 Python实现解题
- Restoration forWeakly Blurred and Strongly Noisy Images 阅读理解
- NetBeans 常用快捷键
热门文章
- 数字IC后端设计实现流程之initial design
- VIM:使用js高亮对json文件着色
- 最小化安装的redhat/centos安装gnome桌面
- 单片机和微型计算机异同,微机与单片机有什么主要的区别?
- [转]HSPICE软件的应用及常见问题解决
- html5的一天,HTML5微电影制作 - 小猫一天的生活
- idea中如何添加自定义的todo
- 一层循环时间复杂度_数据结构与算法系列——时间、空间复杂度
- 为什么网卡名称从eth0变成了enp*s*
- MySql数据导入导出及解决ERROR2006(MySQL server has gone away)错误