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); // 同步并生效本次梯形矫正设定参数
以上伪代码实现的矫正效果如下:
