设置Activity为透明

设置Activity为透明

  private void translucentActivity(Activity activity) {

    try {
        activity.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        activity.getWindow().getDecorView().setBackground(null);
        Method activityOptions = Activity.class.getDeclaredMethod("getActivityOptions");
        activityOptions.setAccessible(true);
        Object options = activityOptions.invoke(activity);

        Class<?>[] classes = Activity.class.getDeclaredClasses();
        Class<?> aClass = null;
        for (Class clazz : classes) {
            if (clazz.getSimpleName().contains("TranslucentConversionListener")) {
                aClass = clazz;
            }
        }
        Method method = Activity.class.getDeclaredMethod("convertToTranslucent",
                aClass, ActivityOptions.class);
        method.setAccessible(true);
        method.invoke(activity, null, options);
    } catch (Throwable t) {
        t.printStackTrace();
    }
}

猜你喜欢

转载自blog.csdn.net/peachs885090/article/details/81710093
今日推荐