package com.stx.xhb.xbanner; import android.content.Context; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.graphics.drawable.StateListDrawable; import android.os.Build; import android.support.annotation.DrawableRes; import android.support.v4.view.ViewCompat; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.View; import java.util.List; /** * <p> * link https://xiaohaibin.github.io/ * email: [email protected] * github: https://github.com/xiaohaibin * description: XBanner轮播控件的工具类 */ public class XBannerUtils { /** * 设置背景选择器 * * @param pressedDraw * @param normalDraw * @return */ public static StateListDrawable getSelector(Drawable normalDraw, Drawable pressedDraw) { StateListDrawable stateListDrawable = new StateListDrawable(); stateListDrawable.addState(new int[]{android.R.attr.state_enabled}, pressedDraw); stateListDrawable.addState(new int[]{}, normalDraw); return stateListDrawable; } public static Drawable getDrawable(Context context, @DrawableRes int resId) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { return context.getDrawable(resId); } else { return context.getResources().getDrawable(resId); } } public static int dp2px(Context context, float dpValue) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue, context.getResources().getDisplayMetrics()); } public static int sp2px(Context context, float spValue) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spValue, context.getResources().getDisplayMetrics()); } public static int getScreenWidth(Context context) { Resources resources = context.getResources(); DisplayMetrics dm = resources.getDisplayMetrics(); return dm.widthPixels; } public static void resetPageTransformer(List<? extends View> views) { if (views == null) { return; } for (View view : views) { view.setVisibility(View.VISIBLE); ViewCompat.setAlpha(view, 1); ViewCompat.setPivotX(view, view.getMeasuredWidth() * 0.5f); ViewCompat.setPivotY(view, view.getMeasuredHeight() * 0.5f); ViewCompat.setTranslationX(view, 0); ViewCompat.setTranslationY(view, 0); ViewCompat.setScaleX(view, 1); ViewCompat.setScaleY(view, 1); ViewCompat.setRotationX(view, 0); ViewCompat.setRotationY(view, 0); ViewCompat.setRotation(view, 0); } } }