宽屏幕适配,屏幕长亮,禁止截屏

宽屏幕的适配:

在 Manifest 清单文件中定义一个更大值的 android.max_aspect 属性,保证App 能够充分利用多余的屏幕空间。

<meta-data 
    android:name="android.max_aspect"
    android:value="2.1"/>

max_aspect 属性表示 App 能够支持的最大屏幕比例,官方建议我们将该值设置为 2.1 或者更高的值。

如果没有max_aspect 属性,同时 android:resizeableActivity 属性值为 true ,App 默认使用的最大 aspect 默认值为 1.8

resizeableActivity 属性在 targetSDKVersion 小于 24 的应用中值为 false,其他为 true。

禁止截屏:
在需要设置禁止截屏的 Activity 的生命周期 onCreate() :

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);

屏幕长亮:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

在需要应用到多个 Activity 的可以将其放在 BaseActivity 基类中,避免编写重复性代码。或者还可以借助这个神奇的 Activity 生命周期接口:

ActivityLifecycleCallbacks

在自定义 Application 类 onCreate() 方法中添加:

    registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
      @Override
      public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
        activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
        activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
      }

      // 这里省略其他相关 Activity 生命周期函数
      ...
    });

出处:

作者:亦枫
链接:https://juejin.im/post/5a287f16f265da43176a062e
来源:掘金

猜你喜欢

转载自blog.csdn.net/github_37610197/article/details/78741472