返回顶部
首页 > 资讯 > 精选 >Android自定义AvatarImageView实现头像显示效果
  • 197
分享到

Android自定义AvatarImageView实现头像显示效果

androidavatarimageview头像 2023-05-30 20:05:40 197人浏览 安东尼
摘要

看看效果图:我们项目中头像显示一般都是圆形的,但是有时候不排除各种样式(不一定是个规则的形状),比如 上次UI给了我一个 圆形下面少了一块。我们一般实现自定义形状的图形有三种方式:PorterDuffXfermode 、BitmapShad

看看效果图:

Android自定义AvatarImageView实现头像显示效果

我们项目中头像显示一般都是圆形的,但是有时候不排除各种样式(不一定是个规则的形状),比如 上次UI给了我一个 圆形下面少了一块。我们一般实现自定义形状的图形有三种方式:PorterDuffXfermode 、BitmapShader、ClipPath。下面我都会分别说明,我这里实现使用的第一种方式(实现还是比较简单的)。

1.PorterDuffXfermode

  这是由Tomas Proter和 Tom Duff命名的图像转换模式,它有16个枚举值来控制canvas上 上下两个图层的交互(先画的图层在下层)。

Android自定义AvatarImageView实现头像显示效果

(蓝色的在上层)

PorterDuff.Mode.CLEAR    所绘制不会提交到画布上
2.PorterDuff.Mode.SRC     显示上层绘制图片
3.PorterDuff.Mode.DST     显示下层绘制图片
4.PorterDuff.Mode.SRC_OVER  正常绘制显示,上下层绘制叠盖。
5.PorterDuff.Mode.DST_OVER  上下层都显示。下层居上显示。
6.PorterDuff.Mode.SRC_IN    取两层绘制交集。显示上层。
7.PorterDuff.Mode.DST_IN    取两层绘制交集。显示下层。
8.PorterDuff.Mode.SRC_OUT   取上层绘制非交集部分。
9.PorterDuff.Mode.DST_OUT   取下层绘制非交集部分。
10.PorterDuff.Mode.SRC_ATOP  取下层非交集部分与上层交集部分
11.PorterDuff.Mode.DST_ATOP  取上层非交集部分与下层交集部分
12.PorterDuff.Mode.XOR     异或:去除两图层交集部分
13.PorterDuff.Mode.DARKEN   取两图层全部区域,交集部分颜色加深
14.PorterDuff.Mode.LIGHTEN   取两图层全部,点亮交集部分颜色
15.PorterDuff.Mode.MULTIPLY  取两图层交集部分叠加后颜色
16.PorterDuff.Mode.SCREEN    取两图层全部区域,交集部分变为透明色

1思路

 会玩Ps的朋友肯定知道,如果有两个图层,我们想把上面图层裁切成下面图层的形状,只需要调下面图层的选区,然后选中上面的图层,蒙板就可以了。
 那么我们就可以利用PorterDuff.Mode的 SRC_IN 或 DST_IN 来取得两个图层的交集,从而把图像裁切成我们想要的各种样式。我们需要一个形状图层和一个显示图层。并且显示图层要全面覆盖形状图层。

2 实现

  继承ImageView,复写了imageview的四个setImage方法(为了更好的兼容性),在setImageDrawable方法中得到前景图片。

 @Override public void setImageBitmap(Bitmap bm) { super.setImageBitmap(bm); mBitmap = bm; setBitmaps(); }  @Override public void setImageDrawable(Drawable drawable) { super.setImageDrawable(drawable); mBitmap = getBitmapFromDrawable(drawable); setBitmaps(); } @Override public void setImageResource(int resId) { super.setImageResource(resId); mBitmap = getBitmapFromDrawable(getDrawable()); setBitmaps(); } @Override public void setImageURI(Uri uri) { super.setImageURI(uri); mBitmap = getBitmapFromDrawable(getDrawable()); setBitmaps(); }

--结束END--

本文标题: Android自定义AvatarImageView实现头像显示效果

本文链接: https://lsjlt.com/news/221170.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android自定义AvatarImageView实现头像显示效果
    看看效果图:我们项目中头像显示一般都是圆形的,但是有时候不排除各种样式(不一定是个规则的形状),比如 上次UI给了我一个 圆形下面少了一块。我们一般实现自定义形状的图形有三种方式:PorterDuffXfermode 、BitmapShad...
    99+
    2023-05-30
    android avatarimageview 头像
  • Android自定义View模仿QQ讨论组头像效果
    首先来看看我们模仿的效果图,相信对于使用过QQ的人来说都不陌生,效果图如下:在以前的一个项目中,需要实现类似QQ讨论组头像的控件,只是头像数量和布局有一小点不一样:一是最头像数是4个,二是头像数是2个时的布局是横着排的。其实当时GitHub...
    99+
    2023-05-31
    android qq讨论组 头像
  • Android Switch自定义实现IOS效果
    先看下效果图 自定义View public class Seniorswitch extends Switch { priva...
    99+
    2022-06-06
    switch IOS Android
  • Android自定义view实现进度条指示效果
    先看看效果图: 首先是布局文件 <FrameLayout android:layout_width="match_parent" android:layout_...
    99+
    2022-06-06
    view 进度条 Android
  • Android实现自定义的弹幕效果
    一、效果图 先来看看效果图吧~~ 二、实现原理方案 1、自定义ViewGroup-XCDanmuView,继承RelativeLayout来实现,当然也可以继承其他三大布局类...
    99+
    2022-06-06
    自定义 Android
  • Android Canvas自定义实现时钟效果
    Android之Canvas自定义画一个时钟,供大家参考,具体内容如下 自定义控件,在安卓是也是一种无所不能的技术了,所有自带控件,以及组合自带控件不能实现的一些效果,我们都可...
    99+
    2022-06-06
    canvas Android
  • android自定义view实现钟表效果
    本文实例为大家分享了android view实现钟表的具体代码,供大家参考,具体内容如下 先看效果图: 自定义view大家肯定已经不陌生了,所以直接今天直接步入正题:如何利用...
    99+
    2022-06-06
    view Android
  • Android自定义View实现扫描效果
    本文实例为大家分享了Android自定义View实现扫描效果的具体代码,供大家参考,具体内容如下 演示效果如下: 实现内容: 1、控制动画是竖向或者横向 2、控制动画初始是从底部/...
    99+
    2024-04-02
  • Android自定义scrollview实现回弹效果
    在ios手机上经常看到页面上下滑动回弹效果,安卓中没有原生控件支持,这里自己就去自定义一个scrollview实现回弹效果 1. 新建MyScrollView并继承ScrollVie...
    99+
    2024-04-02
  • Android自定义Drawable实现圆角效果
    Drawable是一种可绘制资源的载体,如图形、图像等。在实际开发中可以作为view的背景。主要有静态和动态两种方式,静态通过xml描述使用,动态即自定义Drawable。本文实现一个圆形和圆角的背景图片效果。效果图:实现方式:初始化一个B...
    99+
    2023-05-30
    drawable 圆角 roi
  • Android自定义View实现时钟效果
    本文实例为大家分享了Android自定义View实现时钟效果的具体代码,供大家参考,具体内容如下 自定义时钟 初学自定义View,先画一个不太成熟的时钟(甚至只有秒针) 时钟效果 ...
    99+
    2024-04-02
  • Android自定义View实现仿驾考宝典显示分数效果(收藏)
    小编最近发现,一些炫酷的view效果,通过需要自定义view和属性动画结合在一起,才能更容易的实现。 实现的效果图如下: 所用的知识有: (1)自定义View中的 path...
    99+
    2022-06-06
    view Android
  • Android自定义弹窗提示效果
    本文实例为大家分享了Android 自定义弹窗提示的具体代码,供大家参考,具体内容如下 Java文件: private void showSetDeBugDialog() { ...
    99+
    2024-04-02
  • JS+Canvas实现自定义头像功能
    目录写在最前成果展示Git地址功能说明实现细节相关依赖写在最后写在最前 前两天老大跟我说老虎官网上那个自定义头像的功能是flash实现的,没有安装过的还得手动去“允许&r...
    99+
    2024-04-02
  • Android自定义TabLayout效果
    周末就要到了,今天项目中遇到这样一个Tab,选中tab的背景是个圆角矩形,方向指向器没有了,这样普通的TabLayout不能满足我的要求,可能会想到动态的去设置选中Tab的背景...
    99+
    2022-06-06
    tablayout Android
  • Android自定义View实现折线图效果
    下面就是结果图(每种状态用一个表情图片表示): 一、主页面的布局文件如下: <RelativeLayout xmlns:android="http://schema...
    99+
    2022-06-06
    折线图 view Android
  • Android自定义View实现打字机效果
    一、先来看看效果演示 二、实现原理: 这个其实不难实现,通过一个定时器不断调用TextView的setText就行了,在setText的时候播放打字的音效。 具体代码如下:...
    99+
    2022-06-06
    view 打字机 Android
  • Android自定义控件实现时钟效果
    在学习安卓群英传自定义控件章节的时候,有一个例子是绘制时钟,在实现了书上的例子后就想看这个时钟能不能动起来。 这里选择延迟一秒发送消息重绘view来实现的动画,对外提供了开启时...
    99+
    2022-06-06
    Android
  • Android中自定义view实现侧滑效果
    效果图: 看网上的都是两个view拼接,默认右侧的不显示,水平移动的时候把右侧的view显示出来。但是看最新版QQ上的效果不是这样的,但给人的感觉却很好,所以献丑来一发比较高...
    99+
    2022-06-06
    view 自定义view Android
  • Android自定义Animation实现View摇摆效果
    使用自定义Animation,实现View的左右摇摆效果,如图所示: 代码很简单,直接上源码 activity_maini.xml布局文件: <?xml v...
    99+
    2022-06-06
    view animation Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作