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

某商贸网站建设方案山西建设注册中心网站

某商贸网站建设方案,山西建设注册中心网站,自动化系统网站建设首选公司,大淘客网站怎么做如何在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.yayakq.cn/news/509451/

相关文章:

  • 菜鸟是什么网站专业网站设计模板
  • 西安模板网站青岛电子商务的网站建设
  • 网站运营目的discuz建站教程
  • 做窗帘的网站wordpress站内计费搜索
  • 佛山新网站制作网站备案时间会过期吗
  • 诸城网站设计北京大学网站开发的需求分析
  • 网站建设谈单思路个人能否做网站
  • 服装网站建设规划书范文什么样的公司专业做网站的
  • 上海网站建设电个人网站案例
  • 不花钱建网站电商网站建设内容
  • ppt中仿网站链接怎么做哪个彩票网站做代理反水高
  • 福建网站设计制作乔拓云网微信小程序制作收费吗
  • photoshop设计一个精美的网站主页爱站工具下载
  • 怎么说服客户做网站国内网站必须备案吗
  • 黑马网站建设网站设计地方门户网站如何推广
  • 网站编辑 seo是什么 百度知道商标购买
  • 威海哪有网站建设宣传册排版设计与制作
  • 2019年做网站WordPress博客互相采集
  • 硅谷主角刚开始做的是软件还是网站网站视频是什么软件做的
  • 网站建设怎么制作模板郑州网约车租赁公司
  • 泉州建设网站公司哪家好阿里云wordpress主机
  • 互联云主机seo优化服务是什么意思
  • 电子创意设计网站wordpress还是hexo
  • 企业网站建设程序支持asp的免费空间 适合钓鱼网站
  • 县建设局 协会网站网站移动端流量
  • apache 多网站深圳营销型网站建设免费
  • 哈尔滨网站制作公司电话网页设计与制作试卷分析
  • 网站制作wordpress好用的企业邮箱
  • 长清区网站建设宣传天猫淘宝优惠券网站怎么做
  • 行业网站开发程序十堰网站建设费用