一个可以用于AndroidTV的简单的按钮焦点动效

在AndroidTV的APP里,操控逻辑都是遥控实现,所以需要在交互层面添加当前焦点所在的控件UI变化来提示用户当前操作的是哪一个按钮

最简单的莫过于大小呼吸状态的变化了,代码如下:

public static void viewChange(View v, Boolean hasFocus) {
        if (hasFocus) {
            ViewCompat.animate(v)
                    .setDuration(100)
                    .scaleX(1.1f)
                    .scaleY(1.1f)
                    .start();
        } else {
            ViewCompat.animate(v)
                    .setDuration(200)
                    .scaleX(1f)
                    .scaleY(1f)
                    .start();
        }

一般我会添加到我的自定义Untils类里,控件需要调用的时候结合OnFocusChangeListener来做:

button.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                Utils.viewChange(v, hasFocus);
            }
        });

还有一个控件呼吸闪烁的简单实现:

public static void setFlickerAnimation(View iv_chat_head, int speed) {
        final Animation animation = new AlphaAnimation(1, 0);
        animation.setDuration(speed);
        animation.setInterpolator(new LinearInterpolator());
        animation.setRepeatCount(Animation.INFINITE);
        animation.setRepeatMode(Animation.REVERSE);
        iv_chat_head.setAnimation(animation);
    }

直接Untils.setFlickerAnimation(img_view, 400)就好

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值