宽屏幕的适配:
在 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
来源:掘金