
Android图片处理
优雅的心情
这个作者很懒,什么都没留下…
展开
-
开始使用Fresco
类库发布到了Maven中央库:1. Android Studio 或者 Gradledependencies { compile 'com.facebook.fresco:fresco:0.9.0+'}官方文档已经说fresco的类库发布到了Maven中央库,所以我们只需添加上面的代码再同步编译即可,如果无效,请在project的build.gradle文件中添加以下红色原创 2016-05-23 23:15:40 · 760 阅读 · 0 评论 -
Drawable学习之-----ScaleDrawable
对另一个drawable资源,基于当前的level,进行尺寸变换的drawable。文件位置:res/drawable/filename.xml文件名即资源名编译数据类型:指向 ScaleDrawable的指针。资源引用:In Java: R.drawable.filenameIn XML: @[package:]drawable/filename语法:xml vers原创 2017-07-04 15:30:26 · 250 阅读 · 0 评论 -
Drawable学习之-----InsetDrawable
InsetDrawable 表示一个drawable嵌入到另外一个drawable内部,并且在内部留一些间距,这一点很像drawable的padding属性,区别在于 padding表示drawable的内容与drawable本身的边距,insetDrawable表示两个drawable和容器之间的边距。当控件需要的背景比实际的边框小的时候比较适合使用InsetDrawable。原创 2017-06-22 23:06:34 · 292 阅读 · 0 评论 -
Drawable学习之---TransitionDrawable
一个TransitionDrawable是一个特殊的Drawable对象,可以实现两个drawable资源之间淡入淡出的效果。节点下的每个代表一个drawable资源。只能有两个。先前转换调用startTransition()。向后,调用 reverseTransition()。文件位于:res/drawable/filename.xml文件名作为资源ID编译资源类型:指向原创 2017-06-22 15:00:11 · 270 阅读 · 0 评论 -
Drawable学习之----LevelListDrawable
一个LevelListDrawable管理着一组交替的drawable资源。LevelListDrawable里面的每一个drawable资源与一个最大数值结合起来,作为LevelListDrawable资源的一项。调用Drawable的setLevel()方法可以加载level-list或代码中定义的某个drawable资源,判断加载某项的方式:level-list中某项的Android原创 2017-06-22 14:36:07 · 403 阅读 · 0 评论 -
Drawable学习之-----StateListDrawable
一个StateListDrawable就是一个在xml文件中定义,根据该对象不同的状态,用几张不同的图片来代表相同的图形。比如,一个按钮,有多种状态,获取焦点,失去焦点,点击等等,使用StateListDrawable可以根据不同的状态提供不同的背景。在XML文件中描述这些状态列表。在唯一的一个标签下,使用标签来代表一个图形。每个标签使用各种属性来描述它所代表的状态所需要的drawab原创 2017-06-22 11:05:16 · 292 阅读 · 0 评论 -
Drawable学习之----LayerDrawable
一、创建LayerDrawable和使用一个LayerDrawable是一个可以管理一组drawable对象的drawable。在LayerDrawable的drawable资源按照列表的顺序绘制,列表的最后一个drawable绘制在最上层。它所包含的一组drawable资源用多个元素表示,一个元素代表一个drawable资源。文件位置:res/drawable/fil原创 2017-06-21 22:17:53 · 381 阅读 · 0 评论 -
Drawable学习之----ShapeDrawable
一、元素属性 元素:定义这是一个GradientDrawable,必须作为根元素。(ShapeDrawable gradientDrawable=(ShapeDrawable)textView.getBackground();这个时候会报错,只能转为GradientDrawable )属性:xmlns:androidString类型。必须的,定义xml文原创 2017-06-21 11:27:14 · 288 阅读 · 0 评论 -
Drawable学习之---NinePatchDrawable(.9图片的制作)
一、创建NinePatchDrawable一个NinePatch也是一个PNG的图片,不过不同的是可以为这种格式的图片定义可伸缩的区域,当某个视图的内容超过了正常的尺寸的时候,这种格式的图片会自动拉伸以适应不同的尺寸。一般这种图片是作为视图的背景,并且视图至少有一个尺寸(layout_width或者layout_height)是设置为"warp_content"。当视图自增长来适应内容的时原创 2017-06-21 11:00:58 · 924 阅读 · 0 评论 -
Drawable学习之---BitmapDrawable
一、如何创建一个BitmapDrawable对象Bitmap,代表一个位图图像,Android支持三种格式的位图图像:.png (preferred),.jpg (acceptable), .gif (discouraged)。括号里的说明,代表这三种格式的图片在android中的支持情况,.png格式图片优先,.jpg格式也可以,但是效果没有.png好,.gif支持最差。原创 2017-06-21 10:51:23 · 298 阅读 · 0 评论 -
Drawable初步介绍
Drawable Resource一个Drawable资源是绘图中的一个普通概念,可以再屏幕上绘制出来。可以通过APIs中的getDrawable(int)方法检索出来,也可以在其他的XML资源中通过Android:drawable和android:icon等属性使用它。Android中有多种不同类型的drawable。Bitmap File:一个位图文件(.png,.jp原创 2017-06-21 10:35:11 · 1055 阅读 · 0 评论 -
安卓OOM和Bitmap图片二级缓存机制(二)
安卓OOM发生的原因:图片分辨率过大,导致加载图片所需的内存超过系统给进程(app)分配的运行内存,内存爆掉,产生OOM核心解决办法: 利用BitmapFactory。Options的inSimpleSize,计算出合适的图片采样率,减小图片分辨率。再续前缘,接下来的这篇博客里面我们说图片的缓存机制。缓存机制,也叫二级缓存,实际上也就是一个图片存储策略,软件中二级缓存是一个很常见图转载 2017-03-03 16:54:10 · 577 阅读 · 0 评论 -
安卓OOM和Bitmap图片二级缓存机制
本文出自 “阿敏其人” 简书博客,转载或引用请注明出处。OOM(Out Of Memory)什么是OOM手机系统内存份存储内存(ROM)和运行内存(RAM),我们谈论OOM讨论的是运行内存,这点如果是新人需要明确。。现在一般来说手机运行内存是2G,3G基本就算很顶配了,4G运行内存的话只有个别手机配置了。简而言之,OOM就是我们申请的内存太大了,超出了系统分配给我们转载 2017-03-03 16:43:18 · 607 阅读 · 0 评论 -
通过BitmapFactory.decodeByteArray把byte[]转成Bitmap出现的OOM的解决方法
使用Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length)来转成Bitmap的时候,老报OOM,在网上也找了很多关于优化OOM的方法。最后,采用了以下方法后,再也没有报OOM了[java] view plain copypublic static Bit原创 2017-03-03 15:22:27 · 6499 阅读 · 0 评论 -
Android图片缓存之初识Glide
前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架。技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实现方案不能满足项目的需求改用Afinal,由于Afinal不再维护而选择了师出同门的Xutils,中间也接触过别的开源框架比如Picasso,对Picasso的第一次印象就不太好,初次转载 2017-02-16 16:50:17 · 381 阅读 · 0 评论 -
Fresco框架的介绍
Fresco介绍 Fresco是Facebook推出的一款强大的android图片处理库, github地址:https://github.com/facebook/fresco 里面有官方的使用配置文档,而且是中文的,参考文档为Facebook使用手册 Fresco的原理是,设计了一个ImagePipeline的概念,它负责先后检查内存、磁盘文件,如果没有再老老实原创 2016-05-23 22:24:05 · 462 阅读 · 0 评论 -
Drawable学习之-----ClipDrawable
ClipDrawable 是对一个Drawable进行剪切操作,可以控制这个drawable的剪切区域,以及相相对于容器的对齐方式,android中的进度条就是使用一个ClipDrawable实现效果的,它根据level的属性值,决定剪切区域的大小。 需要注意的是ClipDrawable是根据level的大小控制图片剪切操作的,官方文档的note中提到:The drawable原创 2017-07-04 16:29:06 · 261 阅读 · 0 评论