当图片设置
android:scaleType="centerCrop"
属性,又要实现圆角图片的时候,出现的一些问题,当设置centerCrop的时候,圆角就没有了,
这个时候需要用到另一个方法,设置两个Transformer
Glide.with(mContext) .load(vo.getImage()) .dontAnimate() .placeholder(R.drawable.noinfo) .error(R.drawable.noinfo) .transform(new CenterCrop(mContext),new GlideRoundTransform(mContext, 10)) .into(imgs1);
GlideRoundTransform
来源于 https://www.jianshu.com/p/0e79080c8116
package com.bs.feifubao.view; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; public class GlideRoundTransform extends BitmapTransformation { private static float radius = 0f; public GlideRoundTransform(Context context) { this(context, 4); } public GlideRoundTransform(Context context, int dp) { super(context); this.radius = Resources.getSystem().getDisplayMetrics().density * dp; } @Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) { return roundCrop(pool, toTransform); } private static Bitmap roundCrop(BitmapPool pool, Bitmap source) { if (source == null) return null; Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888); if (result == null) { result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888); } Canvas canvas = new Canvas(result); Paint paint = new Paint(); paint.setShader(new BitmapShader(source, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP)); paint.setAntiAlias(true); RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight()); canvas.drawRoundRect(rectF, radius, radius, paint); return result; } @Override public String getId() { return getClass().getName() + Math.round(radius); } }
相关推荐
在Android开发中,ImageView是用于显示图像的常见组件。...这种模式在很多场合都很实用,比如作为背景图片、头像等,可以确保图像不失真的情况下填充空间。希望这些信息对你在实际项目中处理图像显示有所帮助。
Android 设置图片圆角的方法 Android 设置图片圆角的方法是 Android 开发中的一种常见需求,对图片进行二次处理,例如加圆角,或者显示圆形图片是非常常见的需求。下面将详细介绍 Android 设置图片圆角的方法。 ...
总的来说,Android中实现圆角图片有多种方式,包括使用Shape Drawable、设置`scaleType`和`cropToPadding`属性,以及利用图片加载库如Glide进行处理。开发者可以根据项目需求和性能考虑选择合适的方法。记得在优化...
0690_极智开发_解读pytorch torchvision.transformers.CenterCrop方法
这样可以保证图片的纵横比不变,通常用于需要填充背景的情况,但可能会截取掉部分图像。 3. `centerInside` 此模式下,图片会被缩放到适合ImageView,同时保持其原始纵横比,确保整个图片都可见。ImageView的空白...
默认情况下,GridView会自动计算列数以适应屏幕宽度,但你可以通过这个属性设置固定数量的列。 2. `android:verticalSpacing` 和 `android:horizontalSpacing`:这两个属性分别用于设置行间和列间的间距,可以调整...
- `CENTER_CROP`/`centerCrop`:图片按比例放大至`ImageView`尺寸,确保图片至少有一个维度充满整个`ImageView`。 - `CENTER_INSIDE`/`centerInside`:图片按比例缩小至`ImageView`尺寸,确保图片完全可见,且不会...
- **CENTER_CROP/centerCrop**:按比例放大图片以填充整个视图,确保图片的长宽与视图相同。 - **CENTER_INSIDE/centerInside**:保持图片比例的同时将其居中显示,并缩小至视图内,确保图片的长宽不超过视图。 - **...
在Android开发中,为了实现更具视觉吸引力的UI设计,经常需要对图片进行处理,比如将矩形图片转换为圆形或带有圆角的图片。本文将深入探讨如何在Android中自定义实现这一功能。 首先,我们需要了解Android中的...
总结来说,Android中实现ImageView的圆角图片处理主要有XML属性设置、`clipToPadding`、自定义View以及使用第三方库这几种方法。具体选择哪种方式取决于项目需求和个人喜好。在实际开发中,可以根据项目的复杂度和...
* centerCrop:图片将被居中显示,并且被裁剪到 ImageView 的大小。 * centerInside:图片将被居中显示,并且被缩放到 ImageView 的大小,而不超过 ImageView 的大小。 【代码】 ```xml android:id="@+id/iv" ...
这样可以确保图片的长宽比不变,并且完全覆盖ImageView。如果图片的尺寸小于ImageView,那么图片的一部分将不会显示,而另一部分会填充整个ImageView。 3. **CENTER_INSIDE / centerInside** 在这个模式下,图片会...
在Android开发中,`RoundImageView`是一个非常实用的组件,它允许我们轻松地展示带有圆角效果的图片,常用于创建美观的用户界面。这个组件不仅提供了圆形图像的展示方式,还可以实现点击后图片变暗的效果,从而增加...
开发者应深入理解这些属性,结合实际情况灵活运用,以确保应用能在各种设备上展现出一致且美观的界面。同时,随着Android系统版本的更新,还有如ConstraintLayout等新的布局工具,可以帮助开发者更轻松地实现复杂的...
- `src`属性通常用于设置ImageView显示的图像资源,可以是本地图片、网络图片或九宫格图像。通过`android:src="@drawable/my_image"`设置。 - `drawable`是一个更广泛的资源类型,可以包含多种图像资源,如位图、...
5. 像素距离属性:`layout_margin*`属性用于设置视图与其他视图或边界的距离,例如`android:layout_marginBottom`,可以定义视图底部与下一个视图或父布局底部的距离。 6. `EditText`的`android:hint`属性:此属性...
`imageview_background.xml`定义了一个形状,包含填充颜色、边框宽度、颜色以及圆角半径等属性,从而为图片提供了一个带有内边距的白色背景和灰色边框。 总结来说,要让网络下载的图片在Android应用中自适应`...
用此自定义ImageView可显示一张大图的头部,若是图片太矮,会使用系统的centerCrop属性 显示中间部分
- **CENTER_CROP/centerCrop**:按比例放大图片,确保图片的长宽与视图的长宽相等。 - **CENTER_INSIDE/centerInside**:图片居中显示,并且通过缩小比例确保图片的长宽都不超过视图的尺寸。 - **FIT_CENTER/...