之前新闻资讯栏目用的网上下载的异步下载的组件,存在内存泄露问题,用了短时间之后,如果在模拟器环境下会出现内存错误的情况,后来看了下afinal组件,其中包含:finalBitmap组件,看介绍,有几大好处:
1、多线程下载;
2、支持缓存,包含内存和本地文件缓存;
3、异步下载;
4、简单,几行代码搞定
FinalBitmap模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。FinalBitmap可以配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。FinalBitmap的内存管理使用lru算法,没有使用弱引用(android2.3以后google已经不建议使用弱引用,android2.3后强行回收软引用和弱引用,详情查看android官方文档),更好的管理bitmap内存。FinalBitmap可以自定义下载器,用来扩展其他协议显示网络图片,比如ftp等。同时可以自定义bitmap显示器,在imageview显示图片的时候播放动画等(默认是渐变动画显示)
代码:
1、初始化代码
finalBitmap = FinalBitmap.create(this.getApplicationContext()); 初始化 finalBitmap.configBitmapLoadThreadSize(3);定义线程数量 finalBitmap.configDiskCachePath(this.getApplicationContext().getFilesDir().toString());设置缓存目录; finalBitmap.configDiskCacheSize(1024 * 1024 * 10);设置缓存大小 finalBitmap.configLoadingImage(R.drawable.news_default);设置加载图片
2、调用代码
finalBitmap.display(imageView, newsinfoa.getImageUrl());第一个参数为iamgeview组件,第二个为加载的url地址
完成了
相关推荐
Afinal的核心组件包括FinalDB(数据库操作)、FinalBitmap(图片缓存)和FinalActivity(Activity管理)。其中,FinalBitmap就是我们在这里讨论的重点,它是Afinal提供的一个图片加载库,支持内存缓存和磁盘缓存,...
在Android开发中,`ImageView`是用于显示图片的常见组件,但默认情况下它会将图片显示为方形。在很多设计中,我们可能需要将图片显示为圆角或圆形,这通常涉及到对`Bitmap`对象的处理。本篇将详细介绍如何在Android...
Afianl框架中的FinalBitmap组件就是一个专门解决这个问题的工具,它可以帮助开发者轻松地加载网络上的图片,同时避免线程并发问题和内存溢出(OOM)问题。 FinalBitmap的使用方法相当简单,下面我们将详细探讨如何...
Android编程自定义组件实例详解 Android自定义组件是Android开发中一个非常重要的知识点,它可以满足开发者对UI界面的需求。通过继承View类或ViewGroup类,开发者可以创建自己的自定义组件,从而满足特定的需求。...
### Android内存管理与工具使用详解 #### 一、内存分配跟踪工具DDMS——Allocation Tracker使用 **背景介绍:** 在Android开发中,内存管理是非常重要的一环,它直接影响着应用程序的性能和用户体验。为了帮助...
// 将Bitmap显示到ImageView或其他视图组件 } } ``` 接下来,我们讨论打开本地相册的功能。同样,这也可以通过`Intent`实现,这次是`ACTION_PICK`或者`ACTION_GET_CONTENT`,允许用户从他们的图库中选择一张图片...
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawCircle(bitmap.getWidth() / 2, ...
使用画廊做的一个带有倒影的画廊 package com.action; import android.content.Context; import android.graphics.Camera; import android.graphics.Matrix; import android.util.AttributeSet; import android....
2. **Canvas**:Canvas是Android图形系统的核心组件之一,它提供了在特定的Bitmap上进行绘制的接口。我们可以使用Canvas来画线、矩形、圆形以及其它图形。 3. **Paint**:Paint类用于设置绘制图形的样式,如颜色、...
- **Dalvik虚拟机简介**:Dalvik虚拟机是Android系统的核心组件之一,它负责执行Android应用中的Java字节码。与传统的Java虚拟机(JVM)不同,Dalvik虚拟机执行的是.dex文件格式的字节码,这种格式经过了专门的设计,...
在Android应用开发中,Intent是连接各个组件的重要桥梁,它用于启动活动(Activity)、服务(Service)或广播接收器(Broadcast Receiver)。当我们想要调用系统相机功能时,Intent扮演了关键角色。本教程将深入讲解...
4、FinalBitmap 支持任何view的图片加载,不在仅仅只是imageview(非imageView设置加载完成后设置其背景,用在常用语一些布局文件背景中) 5、FinalBtimap 支持加载本地图片,不仅仅只是网络图片 6、FinalBitmap ...
首先,我们可以使用Android自带的`ImageView`组件,并结合自定义的`Drawable`来实现。创建一个圆形`Drawable`的方法是覆写`Drawable`的`onDraw()`方法,然后在其中绘制一个圆形。以下是一个简单的例子: ```java ...
本文将详细介绍如何在Android项目中使用Volley库来实现图片轮播。 首先,我们需要在项目中集成Volley库。这可以通过在build.gradle文件中添加依赖来实现: ```gradle dependencies { implementation '...
在Android开发中,图片边角带标签tag是一个常见的需求,特别是在设计用户界面或者制作各种信息展示组件时。这种功能常用于指示或者强调某些特定的图片信息,比如未读消息、热门推荐等。本文将深入探讨如何在Android...
然后,我们可以使用ImageView组件来显示这个头像: ```xml android:id="@+id/avatar_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/avatar" /> ``...
3. 使用`Bitmap.createBitmap()` 创建一个新的Bitmap,然后通过Bitmap.copy()复制数据。 在实际开发中,根据数据量、性能需求和使用场景,选择合适的序列化方式至关重要。Parcelable适合高性能、内存内传递,而...
- **质量压缩**:使用Bitmap的`compress()`方法来调整图片的质量参数。 - **尺寸压缩**:通过计算合适的采样率来减少图片大小。 - **格式选择**:根据应用场景选择不同的图片格式,如JPEG适用于照片,PNG适合透明...
最后,使用`Bitmap.createBitmap()`方法根据矩阵生成新的缩放后的位图,并将其转换为`Drawable`对象以便于显示。 #### 三、总结 本文介绍了一个简单的Android应用程序,该程序能够实现从网络下载图片并对其进行...
在Android开发中,`Gallery`组件是用于展示一系列图片或者选项的一个控件,它允许用户通过左右滑动来浏览。然而,`Gallery`在新版本的Android SDK中已经被弃用,取而代之的是`HorizontalScrollView`或者`ViewPager`...