Android高级之xUtils框架(三)BitmapUtils
来源:互联网 发布:模拟退火 遗传算法结合 编辑:程序博客网 时间:2024/05/07 12:36
BitmapUtils本身不是单例的,但我们在用它时,必须以单例模式的方式使用,这是因为涉及到内存缓存的原因,因此我们给它定义一个工类,设计成单例的。初始化时,可以用传统的方式之外,还有一种方式,也可以说是一种思想,就是把在整个项目运行之前需初始化且只初始化一次的对象在Application中的onCreate()中。
工具类:
/** * 定义一个工具类,设计成单例模式 */public class BitmapHelper { private static BitmapUtils utils;// 定义一个方法,在Application中调用它而初始化 public static void initUtils(Context context){// 实例化BitmapUtls utils=new BitmapUtils(context,null,0.25f,20 << 20);// 设置默认大小 utils.configDefaultBitmapMaxSize(100, 100);// 设置下载失败时的图片 utils.configDefaultLoadFailedImage(R.mipmap.ic_launcher);// 下载中时的图片 utils.configDefaultLoadingImage(R.mipmap.ic_launcher);// 对图片设置形状时用到config个factory,一层套一层,需注意,BitmapFactory是xUtils包中的 BitmapDisplayConfig config = new BitmapDisplayConfig(); BitmapFactory factory = new BitmapFactory() { @Override public BitmapFactory cloneNew() { return this; }// 创建一个新的Bitmap,并回收原来的 @Override public Bitmap createBitmap(Bitmap bitmap) { int height = bitmap.getHeight(); int width = bitmap.getWidth(); Bitmap result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Paint paint = new Paint(); paint.setShader(new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)); paint.setStyle(Paint.Style.FILL); new Canvas(result).drawCircle(width / 2, height / 2, Math.min(width, height) / 2, paint); bitmap.recycle(); return result; } }; config.setBitmapFactory(factory); utils.configDefaultDisplayConfig(config); } public static BitmapUtils getUtils(){ return utils; }}
/** * 定义一个Application,并初始化BitmapUtils */public class BaseApp extends Application { @Override public void onCreate() { super.onCreate(); BitmapHelper.initUtils(this); }}这里需注意,在清单文件中给Application加上name:
android:name=".BaseApp"接下来就是请求图片了,只有一句话而已:
public class MainActivity extends AppCompatActivity { private ImageView imageView; private String path="http://img001.21cnimg.com/photos/album/20151111/m600/00E973F202F65E0848B3E3875DF97FAB.jpeg"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView=(ImageView)findViewById(R.id.imageView);// 请求网络图片进行下载 BitmapHelper.getUtils().display(imageView, path); Toast.makeText(MainActivity.this, "下载成功", Toast.LENGTH_SHORT).show(); }}最后,加上INTERNET权限。这样就好了,其实也是很简单的!效果如下:
0 0
- Android高级之xUtils框架(三)BitmapUtils
- android高级框架xUtils之BitmapUtils
- android-----XUtils框架之BitmapUtils源码分析
- Android Xutils框架使用之BitmapUtils
- Android:开源框架xutils介绍之 BitmapUtils
- android-----XUtils框架之BitmapUtils加载照片实现
- android xUtils框架中的BitmapUtils 全面注释
- Android - 开源框架 - xUtils - BitmapUtils模块
- 【Xutils-框架 BitmapUtils】解析!!!!!!!!!!!!!!!!!!!!!!!!
- xUtils系列之BitmapUtils
- Xutils之BitmapUtils使用
- xUtils系列之BitmapUtils
- Android高级之xUtils框架(二):HttpUtils
- Android高级之xUtils框架(四):DBUtils的用法
- Android高级之xUtils框架(一):ViewUtils的用法
- Android高级之xUtils框架(四):DBUtils的用法
- android高级框架xUtils之ViewUtils
- android高级框架xUtils之DbUtils
- nyoj--84--阶乘的0(数学技巧)
- ROS-机器人操作系统(ROS)浅析----第六章
- JVM内存分配
- UTF-8 和 GBK 的 NSString 相互转化的方法
- Objective-C中的 id, isa,和 instancetype
- Android高级之xUtils框架(三)BitmapUtils
- Cpp--const限定符
- 《leetCode》:Length of Last Word
- PostgreSQL学习手册(模式Schema)
- Qt中丰富的容器类---数组QVector、链表QLinkedList、映射表QMap、哈希表QHash
- 字典 不可变字典NSDictionary 可变字典NSMutableDictionary
- javascript中的 offsetParent
- 使用github托管代码
- android 很多牛群叉界面库github地址