TabRadioButton 图片和文字居中的RadioButton

package com.js.collection.widget;

import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
import android.view.MotionEvent;

import com.js.collection.R;
import com.library.utils.Dp2PxUtil;

import androidx.appcompat.widget.AppCompatRadioButton;

/**
 * 图片和文字居中的RadioButton,只处理左边或上边有图片的情况,
 * 可以启用默认的缩放动画:在手指按下时会有缩小动画,在手指离开时有复原动画
 */

public class TabRadioButton extends AppCompatRadioButton {
    /** 默认缩放动画,缩放比例为3/4 */
    private static final float DEFAULT_SCALE_RATE = 0.75f;
    /** 默认缩放动画的时长 */
    private static final int DEFAULT_DURATION = 200;
    /** 如果drawable的size为-1,则显示其默认大小 */
    private static final int DEFAULT_DRAWABLE_SIZE = -1;

    private Drawable leftDrawable;
    private Drawable topDrawable;
    private Drawable rightDrawable;
    private Drawable bottomDrawable;
    /** 指定drawable的大小 */
    private int drawableSize;
    private int drawablePadding;
    private String text;
    private float textHeight;
    private float textWidth;

    /** 是否启用动画效果 */
    private boolean enableAnimation;
    /** 手指按下时的动画 */
    private Animator pressedAnimator;
    /** 手指离开时的动画 */
    private Animator releasedAnimator;
    private long duration;
    private float scaleRate;
    Context context;

    public TabRadi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值