当前位置: 首页 > news >正文

海南行指网站开发公司企业关键词大全

海南行指网站开发公司,企业关键词大全,wordpress 升级 ftp,白酒营销策划方案如何在Android Glide中结合使用CenterCrop和自定义圆角变换(图片部分圆角矩形) 在Android开发中,使用Glide加载图片时,我们经常需要对图片进行特定的处理,比如裁剪和圆角变换,特别是一些设计稿,…

如何在Android Glide中结合使用CenterCrop和自定义圆角变换(图片部分圆角矩形)

在这里插入图片描述

在Android开发中,使用Glide加载图片时,我们经常需要对图片进行特定的处理,比如裁剪和圆角变换,特别是一些设计稿,他可能只有上面2个圆角。这篇博客将指导您如何在Glide中结合使用CenterCrop和自定义圆角变换。

简介

Glide是一个流行的Android图像加载库,它提供了强大的图片处理和缓存功能。在许多情况下,我们需要对图片进行裁剪以适应UI的需求,并可能想要应用圆角以增强视觉效果。Glide提供了一种简单的方式来实现这些效果。通过在Glide侧先进行裁剪,避免做完圆角的图到了控件端因为scale未显示出圆角部分。

实现步骤

1. 创建自定义圆角变换

首先,我们需要创建一个自定义的BitmapTransformation,该变换只对图片的顶部应用圆角。这个类可以这样实现:

public class TopCornersRoundedTransformation extends BitmapTransformation {private final float radius; // 圆角半径public TopCornersRoundedTransformation(float radius) {this.radius = radius;}@Overrideprotected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {return topRoundedCorners(pool, toTransform);}private Bitmap topRoundedCorners(BitmapPool pool, Bitmap source) {if (source == null) return null;Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);result.setHasAlpha(true);Canvas canvas = new Canvas(result);Paint paint = new Paint();paint.setAntiAlias(true);paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));// 绘制圆角矩形(只对左上和右上角应用圆角)RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight());canvas.drawRoundRect(rectF, radius, radius, paint);// 绘制矩形以覆盖底部两个角RectF bottomRect = new RectF(0f, radius, source.getWidth(), source.getHeight());canvas.drawRect(bottomRect, paint);return result;}@Overridepublic void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {messageDigest.update(("top_corners_rounded" + radius).getBytes(CHARSET));}
}

在这里插入图片描述

2. 在Glide中使用变换

接下来,在Glide的加载链中,我们结合使用CenterCrop和我们的自定义圆角变换:

int radius = dpToPx(5); // 圆角半径,根据需要调整Glide.with(mActivity).load(getFirstImageUrl(productBean.getUrls())).apply(new RequestOptions().transforms(new CenterCrop(), new TopCornersRoundedTransformation(radius))).into(pictureIV);

这段代码首先将图片进行CenterCrop处理,然后应用自定义的圆角变换。transforms方法允许我们链式地应用多个变换。

3. dpToPx方法

为了将dp单位转换为像素值,您可以使用如下方法:

public int dpToPx(int dp) {return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
}

总结

通过结合使用CenterCrop和自定义的TopCornersRoundedTransformation,我们可以在Glide中轻松实现对图片的裁剪和圆角处理。这种方式既保留了图片的纵横比,又增加了视觉上的吸引力,非常适合现代的Android应用开发。

记住,Glide的变换功能非常强大,可以根据您的具体需求进行定制和扩展。
在这里插入图片描述

http://www.khdw.cn/news/38842.html

相关文章:

  • 上海网站建设 知名做北京官网seo收费
  • 零售app开发公司深圳seo网站优化公司
  • 媒体网站的品牌建设株洲网站设计
  • 自己做网站服务器流程优化四个方法
  • 南阳做那个网站好北京关键词快速排名
  • 北京网站手机站建设公司吗seo推广案例
  • 昆明专业做网站多少钱怎么开通网站平台
  • wordpress本文链接站长网站优化公司
  • php网站下载文件怎么做专门代写平台
  • wordpress url 插件电脑优化工具
  • 丽水网站建设哪家好seo入门基础教程
  • 高端网站建设专业宁波seo如何做推广平台
  • 大连手机网站制作韩国vs加纳分析比分
  • 自己做网站的难度网站外贸推广
  • 网站关键词搜索网站建设是什么
  • 寻找石家庄网站建设丈哥seo博客工具
  • 网站建设的网络技术怎样优化网站排名靠前
  • 做网站和app哪个简单企业推广宣传方案
  • 网站开发论文近三年的参考文献宁德市医院
  • 重庆专业网站建设公司哪家好seo优化顾问服务
  • wordpress nav菏泽资深seo报价
  • 网站开发框架拓扑西安seo专员
  • 新手学做网站推荐软件网站收录教程
  • asp.net网站开发实例广告信息发布平台
  • 济阳做网站公司seo新站如何快速排名
  • 怎么做监控网站资源
  • 网站开发所遵循长沙搜索排名优化公司
  • 重庆本地建站百度app下载官方
  • 专业做网站的公司邢台专业做网站百度应用商店app
  • 临夏州建设网站电商运营推广的方式和渠道有哪些