自定义圆形中心扩散效果

本文介绍了如何实现一个自定义的圆形中心扩散加震动效果。通过XML布局和Java代码实现,详细讲解了在项目中遇到的问题及解决方案,包括使用RelativeLayout包裹自定义控件和ImageView以实现动效,并通过双线程解决动画导致的绘制异常问题。
摘要由CSDN通过智能技术生成

最近因为项目需求,需要写一个自定义的扩散加震动效果,废了一下午的时间,终于给他搞出来了,结果第二天需求就改掉了..

不说那么多题外话了,直接撸代码~

首先是XML文件:

<com.example.XXXXX.sxt.view.customview.DiffuseView
     android:id="@+id/customCall"
     android:layout_width="@dimen/x120"
     android:layout_height="@dimen/x120"
     app:diffuse_coreRadius="100"
     app:diffuse_maxWidth="80"
     app:diffuse_width="10"
     android:layout_centerInParent="true"/>

属性&方法

属性名 java方法 作用
diffuse_color setColor(int colorId) 设置扩散圆颜色
diffuse_coreColor setCoreColor(int colorId) 设置中心圆颜色
diffuse_coreImage setCoreImage(int imageId) 设置中心圆图片
diffuse_coreRadius setCoreRadius(int radius) 设置中心圆半径
diffuse_maxWidth setMaxWidth(int maxWidth) 设置最大扩散宽度
diffuse_width setDiffuseWidth(int width) 设置扩散圆宽度,值越小越宽

Java代码(直接拷贝成一个类就OK~):

/**
 * Created by HXY on 2018/9/25.
 * Be used for : 首页电话按钮背景view,自定义扩散背景
 */

public class DiffuseView extends View {
    /** 扩散圆圈颜色 */
    private int mColor = getResources().getColor(R.color.colorPink);
    /** 圆圈中心颜色 */
    private int mCoreColor = getResources().getColor(R.color.colorPink);
    /** 圆圈中心图片 */
    private Bitmap mBitmap;
    /** 中心圆半径 */
    private float mCoreRadius = 150;
    /** 扩散圆宽度 */
    private int mDiffuseWidth = 3;
    /** 最大宽度 */
    private Integer mMaxWidth = 255;
    /** 是否正在扩散中 */
    private boolean mIsDiffuse = false;
    // 透
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WWGtest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值