TV焦点
1.自定义属性
<!--焦点边框控件属性--> <declare-styleable name="EdgeView"> <attr name="scale" format="float"/> <attr name="shadow" format="reference"/> <attr name="border" format="reference"/> <attr name="host" format="reference"/> </declare-styleable>
2.源码
package com.coship.homefinance.ui; import com.coship.homefinance.R; 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.Rect; import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.animation.DecelerateInterpolator; /** * EdgeView can make the focus of the more obvious */ public class EdgeView extends View implements ViewTreeObserver.OnGlobalFocusChangeListener { private static final int DEFAULT_TRAN_DUR_ANIM = 200; private static final float DEFUALT_SCALE = 1.0f; private View mFocusContent; private float mScale = 1.05f; private View mOldFocusView; private boolean mAnimEnabled = true; private Drawable mDrawableShadow; private Drawable mDrawableBorder; private int mHostViewId; public EdgeView(Context context) { this(context, null,