TV端常用的控件选中放大缩小的效果,已封装好,拿走不谢

看来不能说无聊才和大家分享这些小资源了,系统会不以予通过的,我是从其他大神那里拿来的,换其他控件一样道理,拿走就是;

好吧,添加一个如何使用的栗子,对就是有人会问怎么使用封装好的控件,打个比方以前的我;

ScaleLayout mScaleLayout= (ScaleLayout) findViewById(R.id.nva_shownum);
package com.ajx.widget;

import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.RelativeLayout;

/**
 * onFocusChanged监听控件焦点,配合AnimatorSet的动画放大缩小
 */
public class ScaleLayout extends RelativeLayout {
	public boolean isKeep = false;

	private float SCALE_MIN_VALUE = 1;
	private float SCALE_MAX_VALUE = 1.2f;

	public ScaleLayout(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	public void setSPRING_MAX_VALUE(float SPRING_MAX_VALUE) {
		this.SCALE_MAX_VALUE = SPRING_MAX_VALUE;
	}

	public ScaleLayout(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public ScaleLayout(Context context) {
		super(context);
	}

	public void scaleOut() {

		ObjectAnimator scaleY = ObjectAnimator.ofFloat(this, "scaleY",
				SCALE_MIN_VALUE, SCALE_MAX_VALUE);
		ObjectAnimator scaleX = ObjectAnimator.ofFloat(this, "scaleX",
				SCALE_MIN_VALUE, SCALE_MAX_VALUE);
		AnimatorSet animSet = new AnimatorSet();
		animSet.play(scaleX).with(scaleY);
		animSet.setDuration(200);
		animSet.start();

	}

	public void scaleIn() {
		ObjectAnimator scaleY = ObjectAnimator.ofFloat(this, "scaleY",
				SCALE_MAX_VALUE, SCALE_MIN_VALUE);
		ObjectAnimator scaleX = ObjectAnimator.ofFloat(this, "scaleX",
				SCALE_MAX_VALUE, SCALE_MIN_VALUE);
		AnimatorSet animSet = new AnimatorSet();
		animSet.play(scaleX).with(scaleY);
		animSet.setDuration(200);
		animSet.start();
	}

	@Override
	protected void onFocusChanged(boolean gainFocus, int direction,
			Rect previouslyFocusedRect) {
		super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
		if (isKeep)
			return;
		if (gainFocus) {
			scaleOut();
		} else {
			scaleIn();
		}
	}

	@Override
	protected void onDetachedFromWindow() {
		super.onDetachedFromWindow();
	}

	@Override
	protected void onAttachedToWindow() {
		super.onAttachedToWindow();
	}

}

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

玉念聿辉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值