展开

关键词

Android实现自定义ImageView矩形图片效果

android中的ImageView只能显示矩形的图片,这样一来不能满足我们其他的需求,比如要显示矩形的图片,这个时候,我们就需要自定义ImageView了,其原理就是首先获取到图片的Bitmap, 然后进行裁剪对应的矩形的bitmap,然后在onDraw()进行绘制矩形图片输出。 自定义的形的ImageView类的实现代码如下: package com.xc.xcskin.view;import android.content.Context;import android.graphics.Bitmap android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.ImageView;** * 自定义的矩形 AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); paint = new Paint(); } ** * 绘制矩形图片

76420

android自定义imageview实现图片

本文实例为大家分享了android自定义imageview实现图片的具体代码,供大家参考,具体内容如下自定义图片的属性,对图片进行切割实现效果图:?

53520
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android自定义ImageView实现功能

    使用自定义ImageView,实现功能,供大家参考,具体内容如下 1.自定义属性attrs.xml

    37210

    几行代码撸一个ImageView

    今天项目需要用到一个ImageView,本来已经打开了百度搜索“AndroidImage...” 由于只是需要实现效果,直接继承ImageView即可,这里为了兼容,选中继承androidx下的AppcompatImageView. 1.自定义属性简单粗暴,一般来说,我们是需要四个都是统一半径的 但是不排除万能的PM可能要你明天只要左上和右下,所以四个半径也分别定义一下。 2. 实现方法实现ImageView基本上有两种思路: 直接操作Canvas, 通过clipPath裁剪,去掉画布的四个直,剩下的就得到了ImageView, 所以只需要绘制一个矩形的路径即可优点 这里使用二阶贝塞尔曲线来绘制弧度,当然用arcTo( ) 也是可以的,同时由于没有设置默认半径,减少不必要的绘制,如果用户没有设置半径,直接按原图绘制即可 四个分别绘制,可以实现任意

    28620

    Android自定义带ImageView

    最近有一个实现一个带有ImageView的需求,在网上找了找三方,虽然Demo都是正确的,但是移植过来就不可以了,因为请求链接的时候用的是xUtils中Bitmap来进行解析的,这样就总是会报类型转换异常的错误 android.widget.ImageView;import com.lidroid.xutils.bitmap.core.AsyncDrawable;*** Created by 雪宝宝 on 2016327.* 自定义工具 *public class RoundImageView extends ImageView {private Paint paint;public RoundImageView(Context context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);paint = new Paint();}*** 绘制矩形图片 drawable.setBounds(0, 0, getWidth(),getHeight());drawable.draw(canvas1);}else {super.onDraw(canvas);}}*** 获取矩形图片方法

    17520

    这才是真正的万能ImageView

    不知道有没有人记得我去年写过一个imageview。不知道的可以先去看看:万能imagview,本文是基于上一篇的内容进行添加以及修改的。不然直接看这篇可能会有点懵。前言我为什么要二次封装? 同事说,不知道怎么搞,于是乎,我把之前写的imageview给过去了。他来了句,你这和fitxy同时设置会有问题啊,我反手就是一个大嘴巴子。我的代码怎么会有问题。于是,拿来一瞧,的确有点问题。 So,我决定对这个imageview进行二次的封装。(当然了,这个问题的最后处理是后台直接给一个imageview)。 实现逻辑我前面也说过了,上次我们是根据imageview的源码来修改他的编辑区域的,这次,我们照常打开源码,找到园中对scaletype的处理逻辑,代码如下:???我们找到上次对其实位置修改的地方。 我们画的时候是不是忘记去掉了边框的宽度呢?那么我们既然找到了原因就可以找到解决方法了。那我们就直接去掉边框的高度,注意!!的都要处理。

    82790

    Android 自定义上面下面直ImageView

    类似于这样的图片: image.png 之前用过RoundImageView,其实就是自定义ImageView。想了一下自己重新画一下图片不就ok了么?再给布局设置一个效果。 好了我们来看一下源码:1.首先我们自定义RoundImageView继承于ImageViewpublic class RoundedImageView extends ImageView { *的半径 radii数组定义矩形的四个的x,y半径。 ,依次为左上x,y半径、右上、右下、左下 接下来我们就自己画一下imageview我们给路径添加矩形,将我们定义的半径设置进去,给canvas切割一下画布就可以了。 imageview就画成了上面是,下面是直了。如果需要图片的四个为不同的直,只需要改一下我们的半径值就可以了。

    3K40

    Android ImageView

    开发过程中我们经常会用到形的图片,作为头像、Item图标等等。笔者今天分享出自己常用的实现方式 —— 继承ImageView重写onDraw方法,手动裁剪。 绘制完成后,使用方式就和普通的ImageView无异。 效果图:? 效果图 .png核心代码: 核心思路其实就是对Bitmap的操作,先将图片裁剪成正方形,再将正方形图片裁剪成形 将原始图像裁剪成正方形 private Bitmap dealRawBitmap(Bitmap Bitmap.createBitmap(bitmap,leftTopX,leftTopY,minWidth,minWidth,null,false); return scaleBitmap(newBitmap); }将图片裁剪成形图片

    50830

    矩形图片

    title: 2016-5-2前言从网络加载的图片是矩形的,而且大小不限,为了让图片显示为四个显示为14这样的矩形,有多种方法。 因为项目中使用的是Android-Universal-Image-Loader库,本身具有对图片的显示功能,下面就看下里面的实现。 RoundedBitmapDisplayer这个类实现了对Bitmap的四个化处理。 void setColorFilter(ColorFilter cf) { paint.setColorFilter(cf); } }}可以看到,RoundedBitmapDisplayerb本身只是封装了矩形的半径和外边距属性 它使用基于原图片的Bitmap生成的Drawable 的子类来完成显示的功能。

    42180

    android 图片的实现和封装

    最近被人问起图片的实现,花了一点时间鼓捣了下,下面简单分享下。完整例子: RoundImage先上效果图????下面为主要源码,实现了 Picasso 中的 Transformation 接口。 Paint paint,float radius, int right, int bottom);}DrawTopCornerImage 为 DrawCornerImage 的一个实现类,负责具体的逻辑 (Canvas canvas, Paint paint, float radius, int right, int bottom) { 绘制一个全部的矩形区域长宽分别为 right 和 bottom 并集即为上部为而底部是直的一个区域 canvas.drawRect(new RectF(0, radius, right, bottom), paint); }}原理简单来讲,就是所绘制区域的并集为可见区域 有一点提一下如果你的 ImageView 有用 android:scaleType=”centerCrop” 属性,可能上面方法就有点不合适了,centerCrop 属性会截取图片的中心区域展示很可能就不在展示范围了

    54440

    羊皮书APP(Android版)开发系列(二十三)10分钟单例模式实战-Glide图片加载库封装工具类

    () .into(imageView); } 加载drawable图片显示为形图片 public void displayCricleImage(Context context, int resId, (new GlideCircleTransform(context)) .into(imageView); } 加载网络图片显示为形图片 public void displayCricleImage( .transform(new GlideCircleTransform(context)) .crossFade() .into(imageView); } 加载SD卡图片显示为形图片 public ,写一个形显示工具,有了这个工具,显示形头像就很容易了。 glide各种转换,形/五星/等: glide-transformations。

    24150

    Android 中的那些

    引用关键字implement、api和compile区别图片加载处理原图Glide和PicassoGlide下载地址:https:github.combumptechglide使用文档:https > 注意其中的: app:roundedCornerRadius=”2dp” 这样你就得到了一个2dpImageView。 SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);draweeView.setImageURI(uri);图片组件 riv.setOval(true);riv.setTileModeX(Shader.TileMode.REPEAT);riv.setTileModeY(Shader.TileMode.REPEAT);背景 容器(CardView)引用dependencies { implementation com.android.support:cardview-v7:27.0.2}设置

    28510

    一种android中实现“矩形”的方法

    内容简介文章介绍ImageView(方法也可以应用到其它View)矩形(包括形)的一种实现方式,四个可以分别指定为。思路是利用“Xfermode + Path”来进行Bitmap的裁剪。 这次需要的效果是矩形,而且只有图片上面左、右两个。然后藐似没发现有这种功能,刚好就自己实践下了。 由于上面的原因,根据实际ImageView大小的确定方式不同,要么是取ImageView的大小来作为整个“矩形”的范围,要么是以实际展示的Bitmap的大小为准。 下面采取自定义ImageView子类的形式提供案例来说明“Xfermode + Path”实现矩形的思路。 强调下,上面代码限制ImageView和它展示的内容必须是同样大小的,否则就以实际显示图片的Rect作为“矩形画框”的Rect。

    1.3K70

    自定义形图片

    ImageView和ImageButton需要图片,有两种生成形图片的方法1、自定义View继承ImageView、ImageButton2、imageView.setXXX();看下ImageView 的设置图片方法:1 ImageView imageView = new ImageView(this);2 3 imageView.setImageDrawable(); 参数为一个Drawable );13 setContentView(R.layout.main);14 imageView = (ImageView) findViewById(R.id.img);15 Bitmap bitmap ------------------------------------学习来源:CirleDrawImage图片在该基础上进行部分修改,思路或代码若有问题,欢迎指出。 总结此方法的缺点:1、该方法无法缩放原图,若原图宽高不一致,则显示效果不佳,无法正常显示出较长边的部分内容2、形图片的效果有一定的损耗,效果不佳适用于对图片精美度要求不高的需求使用自定义View继承ImageView

    56480

    Anroid笔记:Android图片加载框架Glide用法

    1.网络加载图片到ImageView中Glide.with(context).load(imageUrl).into(imageView);2.当加载网络图片时,由于加载过程中图片未能及时显示,此时可能需要设置等待时的图片 );4.图片的缩放,centerCrop()和fitCenter():(1)使用centerCrop是利用图片图填充ImageView设置的大小,如果ImageView的Height是match_parent ImageView 的边界范围,该图像将会完全显示,但可能不会填满整个ImageView。 onResourceReady(Bitmap bitmap, GlideAnimation anim) { setImageBitmap(bitmap) on CircleImageView } };10.加载形图片和图片形图片 public String getId() { return getClass().getName(); }} Contact GitHub API Training Shop Blog About 图片

    8720

    Android开发之那些好用的数据结构与API(三)

    它是用来创建简单的图片,以前做App时,个人中心经常有个的个人头像,可能大家都会用第三方的库来做,其实在2014年的Google IO大会后Google发布了新的Support lib,其中就有这个类和相应的 API,看看最新的Android系统中联系人的形头像,就是基于此而做的,API很简单,如下:ImageView imageView = (ImageView) findViewById(R.id.img 创建RoundedBitmapDrawable对象RoundedBitmapDrawable dr = RoundedBitmapDrawableFactory.create(res, src); 设置半径 dr.setCornerRadius(Math.max(src.getWidth(), src.getHeight()) 2.0f); 显示图片imageView.setImageDrawable

    478110

    Glide二次封装库的使用

    缩略图不能与矩形同时使用。 ##十七.加载多边形----/正方形/ .asSquare() 正方形 ImageLoader.with(this)..asSquare().into(View);? .rectRoundCorner(int rectRoundRadius) ImageLoader.with(this).rectRoundCorner(50).into(View);? 、、多边形实现 ###参数解读 ####三种类型----type type:circle(形)/round()/multi(多边形) ####多边形的个数----angleCount (integer ) ####开始绘制的度----currentAngle (integer) ####的度数----borderRadius (dimension) ?

    1K10

    iOS Quartz2D相关方法

    Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统Quartz 2D能完成的工作绘制图形 : 线条三形矩形弧等绘制文字绘制生成图片(图像)读取生成PDF截图裁剪图片自定义UI控件Quartz2D (100,100) 半径50 起始度为0 旋转1.5PI 顺时针 这时候画笔的起始点为(150,100) 画完之后停留在(100,50) CGPathAddArc(path, &transform, = UIImageView(image: image); self.view.addSubview(imageView);}漏斗状func test02(){ UIGraphicsBeginImageContext 初始点为(0, 0) CGPathMoveToPoint(path, &transform, 0, 0); 这样理解 起始点为(0,0) 终点为(100,0)交叉点为(50,200) 画一个半径为10的半 = UIImageView(image: image); self.view.addSubview(imageView);}

    20320

    Databinding使用总结

    : ImageView, imgUrl: String?) : ) .placeholder(glideHolderColor) .into(imageView) } } 然后在XML设置后,就会触发图片加载了 多个参数的方法还是图片加载,需要传参数,不同的地方 ,的弧度可以自定义设置我们先定义方法如下** * 加载图片 * @BindingAdapter(setImageUrlRound, setImageRadius) @JvmStatic fun bindImageViewUrlRound(imageView: ImageView, url: String? placeholder(ColorDrawable(glideHolderColor)) .transform(RoundedCorners(DeviceUtils.dp2px(radius))) .into(imageView

    9830

    自定义标库

    前言 标的需求在app是经常需要用到的,比如未读通知信息等,一般,我们可以通过嵌套相对布局的方式来设置标,但是除了TextView,可能Button,ImageView等也需要,那只能写多次这类布局了 标支持(左 上 右 下 左上 左下 右上 右下)八个方向,支持在xml或java代码控制标背景颜色和半径,标文字的颜色和大小, 环绕间隔的大小,标的形状(形,矩形,矩形,椭形(5.0适用 )),的大小,外环(边框)的颜色和宽度;2.TipLayout:可以用于嵌套Button ,ImageView ,CheckBox;3.TipLinearLayout:可用作具有标功能的LinearLayout ttv_corner—————大小ttv_max ——————标文本数字最大值ttv_rHeight ————标矩形高度ttv_rWidth—————标矩形宽度ttv_corner———— —大小ttv_sbape —————标形状: 形-circle矩形-round_rectangle矩形-rectangle椭-ovalttv_type——————标环绕方式:固定-fixation

    66070

    扫码关注云+社区

    领取腾讯云代金券