Android 梯形矫正参数介绍


1. 梯形矫正参数介绍和使用说明

Android 系统矫正的参数基本都以系统属性的方式进行存储和设定,同时属性被封装成了属性 API 供各个模块便捷调用,具体参数名称和含义如下表。

属性名称 属性API 含义
persist.vendor.keystonecorrection.enable keystone_correction_enable 梯形矫正使能
vendor.keystone.lefttop_point_offset-x keystone_lefttop_point_offset_x 梯形矫正左上角点的 x 方向偏移量
vendor.keystone.lefttop_point_offset-y keystone_lefttop_point_offset_y 梯形矫正左上角点的 y 方向偏移量
vendor.keystone.lefttop_point_offset-x keystone_leftbottom_point_offset_x 梯形矫正左下角点的 x 方向偏移量
vendor.keystone.leftbottom_point_offset-y keystone_leftbottom_point_offset_y 梯形矫正左下角点的 y 方向偏移量
vendor.keystone.rightbottom_point_offset-x keystone_rightbottom_point_offset_x 梯形矫正右下角点的 x 方向偏移量
vendor.keystone.rightbottom_point_offset-y keystone_rightbottom_point_offset_y 梯形矫正右下角点的 y 方向偏移量
vendor.keystone.righttop_point_offset-x keystone_righttop_point_offset_x 梯形矫正右上角点的 x 方向偏移量
vendor.keystone.righttop_point_offset-y keystone_righttop_point_offset_y 梯形矫正右上角点的 y 方向偏移量
vendor.keystone.sync_point_flag keystone_sync_point_flag 梯形矫正参数生效并同步

2. 参数使用说明

对于梯形矫正参数虽然为系统属性的方式,但是这里不建议直接通过 property_set/get 方式来设定获取属性值。推荐使用属性 API 进行相关操作,以下为使用的举例:

#include <vendor/sysprop/DisplayProperties.sysprop.h> // 头文件

bool keystone_enable = DisplayProperties::keystone_correction_enable().value_or(false); // 直接通过属性 API 获取相应的值

3. 例子

以下为梯形矫正参数使用的一个伪代码例子,实现对于左上角和右上角的两个点进行矫正操作:

#include <vendor/sysprop/DisplayProperties.sysprop.h> // 头文件

DisplayProperties::keystone_correction_enable(true); // 开启梯形校正功能

DisplayProperties::keystone_lefttop_point_offset_x(50); // 设定左上角点的 x 偏移坐标
DisplayProperties::keystone_lefttop_point_offset_y(70); // 设定左上角点的 y 偏移坐标
DisplayProperties::keystone_righttop_point_offset_x(50); // 设定右上角点的 x 偏移坐标
DisplayProperties::keystone_righttop_point_offset_y(70); // 设定右上角点的 y 偏移坐标
DisplayProperties::keystone_sync_point_flag(0); // 同步并生效本次梯形矫正设定参数

以上伪代码实现的矫正效果如下: