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();
	}

}

猜你喜欢

转载自blog.csdn.net/qq_35350654/article/details/81586261