最近有一个实现一个带有圆角的ImageView的需求,在网上找了找三方,虽然Demo都是正确的,但是移植过来就不可以了,因为请求链接的时候用的是xUtils中Bitmap来进行解析的,这样就总是会报类型转换异常的错误...import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.widget.ImageView...; import com.lidroid.xutils.bitmap.core.AsyncDrawable; /** * Created by 雪宝宝 on 2016/3/27. * 自定义圆角工具 *.../ public class RoundImageView extends ImageView { private Paint paint; public RoundImageView(Context...AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); paint = new Paint(); } /** * 绘制圆角矩形图片
今天项目需要用到一个圆角ImageView,本来已经打开了百度搜索“Android圆角Image...”...由于只是需要实现圆角效果,直接继承ImageView即可,这里为了兼容,选中继承androidx下的AppcompatImageView. 1.自定义属性 简单粗暴,一般来说,我们是需要四个角都是统一半径的圆角...但是不排除万能的PM可能要你明天只要左上圆角和右下圆角,所以四个圆角半径也分别定义一下。...实现方法 实现圆角ImageView基本上有两种思路: 直接操作Canvas, 通过clipPath裁剪,去掉画布的四个直角,剩下的就得到了圆角的ImageView, 所以只需要绘制一个圆角矩形的路径即可...优点:不受控件scaleType约束 缺点:需要对drawable进行额外处理,耗时肯定也会高一些 综合实际考虑,实际项目中,基本都会将ImageView的scaleType设为center_crop
使用自定义ImageView,实现圆角功能,供大家参考,具体内容如下 1.自定义属性attrs.xml <?xml version="1.0" encoding="utf-8"?...getWidth(); height = getHeight(); } @Override protected void onDraw(Canvas canvas) { //这里做下判断,只有图片的宽高大于设置的圆角距离的时候才进行裁剪...Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageView
本文实例为大家分享了android自定义imageview实现圆角图片的具体代码,供大家参考,具体内容如下 自定义图片的属性,对图片进行圆角切割 实现效果图: ?...declare-styleable </resources (2)MainActivity直接导入上面的布局即可,无需其他操作,如果要写监听或者其他操作,需要特别处理,这里仅仅提供显示 (3)开源的工具类,图片圆角转换工具类...android.view.MotionEvent; import android.view.View; import android.view.ViewOutlineProvider; import android.widget.ImageView...; public class CircleImageView extends ImageView { //参考网址:https://github.com/hdodenhof/CircleImageView
不知道有没有人记得我去年写过一个圆角的imageview。不知道的可以先去看看:万能圆角imagview,本文是基于上一篇的内容进行添加以及修改的。不然直接看这篇可能会有点懵。...同事说,不知道怎么搞,于是乎,我把之前写的imageview给过去了。他来了句,你这圆角和fitxy同时设置会有问题啊,我反手就是一个大嘴巴子。我的代码怎么会有问题。于是,拿来一瞧,的确有点问题。...So,我决定对这个imageview进行二次的封装。(当然了,这个问题的最后处理是后台直接给一个圆角的imageview)。...实现逻辑 我前面也说过了,上次我们是根据imageview的源码来修改他的编辑区域的,这次,我们照常打开源码,找到园中对scaletype的处理逻辑,代码如下: ? ? ?...我们画圆角和圆的时候是不是忘记去掉了边框的宽度呢?那么我们既然找到了原因就可以找到解决方法了。那我们就直接去掉边框的高度,注意!!圆角和圆的都要处理。
类似于这样的图片: image.png 之前用过RoundImageView,其实就是自定义ImageView。想了一下自己重新画一下图片不就ok了么?再给布局设置一个圆角效果。...好了我们来看一下源码: 1.首先我们自定义RoundImageView继承于ImageView public class RoundedImageView extends ImageView { /...radii数组定义圆角矩形的四个圆角的x,y半径。...,依次为左上角x,y半径、右上角、右下角、左下角 接下来我们就自己画一下imageview 我们给路径添加圆角矩形,将我们定义的圆角半径设置进去,给canvas切割一下画布就可以了。...imageview就画成了上面是圆角,下面是直角了。如果需要图片的四个角为不同的直角圆角,只需要改一下我们的圆角半径值就可以了。
android中的ImageView只能显示矩形的图片,这样一来不能满足我们其他的需求,比如要显示圆角矩形的图片,这个时候,我们就需要自定义ImageView了,其原理就是首先获取到图片的Bitmap,...然后进行裁剪对应的圆角矩形的bitmap,然后在onDraw()进行绘制圆角矩形图片输出。...import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.widget.ImageView...; /** * 自定义的圆角矩形ImageView,可以直接当组件在布局中使用。...* @author caizhiming * */ public class XCRoundRectImageView extends ImageView{ private Paint paint
image.png 目录 ImageView ImageView是图片控件,可以使用其显示图片. xml写法: <ImageView android:id="@+id/imageView...这样我们就可以在项目中看到想要的图片了. image.png 然后尝试加载图片: <ImageView android:id="@+id/imageView" android...我们再来修改下图片的名字 image.png 将xml文件也做相应的修改 <ImageView android:id="@+id/imageView" android...下面尝试再添加个按钮,点击按钮后更换ImageView中的图片 小实验 首先添加个next按钮: <Button android:id="@+id/next" android...; public class MainActivity extends AppCompatActivity { Button next; ImageView image;
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql...
前言 对ImageView.ScaleType,学习安卓需掌握。...重点: ImageView.ScaleType 中央 将图像置于视图中央,但不执行缩放。...ImageView.ScaleType CENTER_CROP 均匀缩放图像(保持图像的高宽比),使图像的两个尺寸(宽度和高度)等于或大于视图的相应尺寸(减去填充)。...ImageView.ScaleType FIT_CENTER 使用缩放图像CENTER。 ImageView.ScaleType FIT_END 使用缩放图像END。...ImageView.ScaleType FIT_START 使用缩放图像START。 ImageView.ScaleType FIT_XY 使用缩放图像FILL。
笔者今天分享出自己常用的实现方式 —— 继承ImageView重写onDraw方法,手动裁剪。绘制完成后,使用方式就和普通的ImageView无异。 效果图: ?
android:scaleType是控制图片如何 resized/moved来匹对ImageView的size。...ImageView.ScaleType / android:scaleType值的意义区别: CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截 取图片的居中部分显示
matrix:不改变原图的大小,从ImageView的左上角开始绘图,原图超过ImageView大小的部分不做显示,裁剪掉。...fitXY:按照ImageView的大小显示,拉伸图片,填满ImageView。 fitCenter:将原图按比例缩放到ImageView的高度或者宽度,居中显示。...fitEnd:将原图按比例缩放到ImageView的高度或者宽度,在ImageView的底部显示 fitStart:将原图按比例缩放到ImageView的高度或者宽度,在ImageView的上部显示...centerCrop:以原图填满ImageView为目的,如果原图size大于ImageView的size,则与center_inside一样,按比例缩小,居中显示在ImageView上。...如果原图size小于ImageView的size,则按比例拉升原图的宽和高,填充ImageView居中显示。
ImageView.ScaleType 将图片边界缩放到所在view边界时的缩放选项。
--圆角--> <corners android:radius="5dp" android:topLeftRadius="30dp" android...是从上到下 360==0 3、还有一个type参数: linear 线性渐变(默认) radial 环形渐变 sweep 扇形渐变 渐变一般给个开始颜色和结束颜色,然后指定一下方向就行了 4、两边半圆角
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。 设置的方式包括: 1....或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER); 接下来,将对ScaleType的值和对应的显示效果用最直观的方式——真图演示的方法...SetScaleType(ImageView.ScaleType.CENTER); 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示 2....(ImageView.ScaleType.CENTER_INSIDE); 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽 4. setScaleType...(ImageView.ScaleType.FIT_CENTER); 把图片按比例扩大/缩小到View的宽度,居中显示 5.
“ 大家对ImageView再熟悉不过了,但其ScalType你了解吗?” ImageView的ScaleType属性,表示的是ImageView中资源图片的填充方式。...02 centerCrop android:scaleType=”centerCrop” 以填满整个ImageView为目的,将原图的中心对准ImageView的中心,等比例放大原图,直到填满ImageView...为止(指的是ImageView的宽和高都要填满),原图超过ImageView的部分作裁剪处理。...如果原图的size本身就小于ImageView的size,则原图的size不作任何处理,居中显示在ImageView。...06 fitEnd android:scaleType=”fitEnd” 把原图按比例扩大(缩小)到ImageView的高度,显示在ImageView的下部分位置。
、adjustViewBounds、tint 4.图片设置 源码中ImageView的自定义属性: * @attr ref android.R.styleable#ImageView_adjustViewBounds...* @attr ref android.R.styleable#ImageView_src * @attr ref android.R.styleable#ImageView_maxWidth...* @attr ref android.R.styleable#ImageView_maxHeight * @attr ref android.R.styleable#ImageView_tint...裁剪类型.gif] fitCenter:按比例扩大或缩小到ImageView的ImageView的高度,居中显示 fitEnd:按比例扩大(缩小)到ImageView的高度,显示在ImageView的下部分位置...fitStart:按比例扩大(缩小)到ImageView的高度,显示在ImageView的上部分位置 fitXY:不保持原比例,填满ImageView center:按比例扩大或缩小到ImageView
截屏2021-06-28 09.44.29.png 如图[上报]背景图右边圆角,当然切图也是可以的,写一个UIView的分类就可以实现。...#import NS_ASSUME_NONNULL_BEGIN @interface UIView (CornerRadius) /*设置顶部圆角*/ - (void...)setCornerOnTop:(CGFloat )cornerRadius ; /*设置底部圆角*/ - (void)setCornerOnBottom:(CGFloat )cornerRadius...; /*设置左边圆角*/ - (void)setCornerOnLeft:(CGFloat )cornerRadius; /*设置右边圆角*/ - (void)setCornerOnRight:(CGFloat..." @implementation UIView (CornerRadius) /*设置顶部圆角*/ - (void)setCornerOnTop:(CGFloat )cornerRadius {
RoundedBitmapDisplayer 这个类实现了对Bitmap的四个角的圆角化处理。...它实现了接口BitmapDisplayer,在调用方法displayImage(String uri, ImageView imageView, DisplayImageOptions options)...ColorFilter cf) { paint.setColorFilter(cf); } } } 可以看到,RoundedBitmapDisplayerb本身只是封装了圆角矩形的圆角半径和外边距属性...它使用基于原图片的Bitmap生成的Drawable 的子类来完成圆角显示的功能。...的宽高,之后将loadedImage设置给ImageView即可。
领取专属 10元无门槛券
手把手带您无忧上云