美文网首页
工具类:Window

工具类:Window

作者: 楷桐 | 来源:发表于2018-03-12 15:41 被阅读11次
    import android.animation.ValueAnimator;
    import android.app.Activity;
    import android.content.Context;
    import android.content.res.Configuration;
    import android.view.Surface;
    import android.view.Window;
    import android.view.WindowManager;
    
    public final class WindowUtils {
    
        /**
         * Don't let anyone instantiate this class.
         */
        private WindowUtils() {
            throw new Error("Do not need instantiate!");
        }
    
        /**
         * 获取当前窗口的旋转角度
         *
         * @param activity activity
         * @return  int
         */
        public static int getDisplayRotation(Activity activity) {
            switch (activity.getWindowManager().getDefaultDisplay().getRotation()) {
                case Surface.ROTATION_0:
                    return 0;
                case Surface.ROTATION_90:
                    return 90;
                case Surface.ROTATION_180:
                    return 180;
                case Surface.ROTATION_270:
                    return 270;
                default:
                    return 0;
            }
        }
    
        /**
         * 当前是否是横屏
         *
         * @param context  context
         * @return  boolean
         */
        public static final boolean isLandscape(Context context) {
            return context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
        }
    
        /**
         * 当前是否是竖屏
         *
         * @param context  context
         * @return   boolean
         */
        public static final boolean isPortrait(Context context) {
            return context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
        }
        /**
         *  调整窗口的透明度  1.0f,0.5f 变暗
         * @param from  from>=0&&from<=1.0f
         * @param to  to>=0&&to<=1.0f
         * @param context  当前的activity
         */
        public static void dimBackground(final float from, final float to, Activity context) {
            final Window window = context.getWindow();
            ValueAnimator valueAnimator = ValueAnimator.ofFloat(from, to);
            valueAnimator.setDuration(500);
            valueAnimator.addUpdateListener(
                    new ValueAnimator.AnimatorUpdateListener() {
                        @Override
                        public void onAnimationUpdate(ValueAnimator animation) {
                            WindowManager.LayoutParams params
                                    = window.getAttributes();
                            params.alpha = (Float) animation.getAnimatedValue();
                            window.setAttributes(params);
                        }
                    });
            valueAnimator.start();
        }
    }
    

    相关文章

      网友评论

          本文标题:工具类:Window

          本文链接:https://www.haomeiwen.com/subject/eugnfftx.html