设置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();
}
}
本文介绍了一种在Android中将Activity设置为透明的方法,通过调整窗口背景和使用特定API实现Activity的透明转换,适用于需要背景透明效果的应用场景。
2364

被折叠的 条评论
为什么被折叠?



