使用Gilde加载图片时裁剪大小异常
来源:互联网 发布:suse网络不通 编辑:程序博客网 时间:2024/06/06 05:14
LT.ee("px="+ConvertUtils.dp2px(24)); Glide.with(mActivity)//打印出48px .load("http://attachments.gfan.com/attachments2/day_110615/1106151509f6d875b078d5a4c4.jpg") .crossFade(500) .placeholder(R.drawable.ic_account_circle_black_24dp) .bitmapTransform(new CropCircleTransformation(mActivity)) .override(ConvertUtils.dp2px(24), ConvertUtils.dp2px(24)) .into(mActivity.getTopBar().getViewL1());
<ImageView android:id="@+id/NavigateOperation_L1" android:layout_width=“50dp" android:layout_height="wrap_content" android:clickable="false" android:scaleType="fitCenter" android:src="@drawable/left_arrow" android:visibility="visible" />
这是加载图片的代码和ImageView的xml
这时出现一个诡异的bug,当我把ConvertUtils.dp2px(XX)设置30 20 16时在页面上的大小都一样,设置成15的时候又会突然变非常小,
android:scaleType="fitCenter”
fitCenter和centerInside都是一样的结果.
猜测是设置图片的方式有异常,之前的图片都是使用setImageResource设置的,setImageResource会自动适应图片空间的宽高,而Gilde则是使用setImageDrawable设置,具体可以参考
http://blog.csdn.net/hoyouly/article/details/52839015#setimagebitmap
setImageResource():这个方法是在UI线程中对图片读取和解析的,所以有可能对一个Activity的启动造成延迟。所以如果顾虑到这个官方建议用setImageDrawable和setImageBitmap来代替。
setImageBitmap():实际上setImageBitmap做的事情就是把Bitmap对象封装成Drawable对象,然后调用setImageDrawable来设置图片,不如直接使用setImageDrawable()
setImageDrawable():setImageDrawable是最省内存高效的,如果担心图片过大或者图片过多影响内存和加载效率,可以自己解析图片然后通过调用setImageDrawable方法进行设置。
后来发现了adjustViewBounds可以满足需求,代码如下
<ImageView android:id="@+id/NavigateOperation_L1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxHeight="28dp" android:maxWidth="28dp" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:adjustViewBounds="true" android:clickable="false" android:scaleType="fitCenter" android:src="@drawable/left_arrow" android:visibility="visible" />
关键在于adjustViewBounds和maxHeight\maxWidth配合使用
就可以保证宽高一致
- 使用Gilde加载图片时裁剪大小异常
- Gilde图片加载框架的使用
- Gilde加载圆形图片
- Gilde加载图片
- RecyclerView瀑布流的形式利用Gilde加载网络图片
- 图片加载框架之Gilde详细讲解(一)
- 图片加载框架之Gilde详细讲解(二)
- 视图的隐藏显示附加Gilde加载图片模版
- Gilde加载网络图片到TextView的DrawableTop
- 二次采样加载图片裁剪
- Gilde基础使用
- Android Gilde使用
- 使用jcrop裁剪图片
- 使用PHP实现生成固定大小图片缩略图功能(智能裁剪,图片不失真)
- 使用PHP实现生成固定大小图片缩略图功能(智能裁剪,图片不失真)
- 如何使用matlab批量的在图片中裁剪指定像素大小的图片
- android 4.4以上系统文档和图库裁剪图片加载异常的处理
- 揭秘之从RecyclerView滑动监听到Gilde平滑加载图片
- CGImageRef像素位图参数说明
- Maven生命周期详解
- Redis+MySQL冷热数据交换
- C# FtpHelper实现ftp服务器文件读写操作
- 师--链表的结点插入
- 使用Gilde加载图片时裁剪大小异常
- JSON与泛型的结合(大幅度减小工作量)-巧用工具类
- 内部类
- 解决ajax的status=0问题:submit和button冲突
- STM32 内部flash的读写程序
- Multilayer Perceptron(MLP)
- [BZOJ Contest-2017省队十连测推广赛1·T2][BZOJ4766][完全二分图的生成树个数]文艺计算姬
- 如何让某软件永不联网?
- zabbix自带触发器介绍