hpe*_*pet 3 android canvas matrix scale
我正在播放一些动画,其中所有帧都是相同的高度,但宽度不同.好吧,但我想使用矩阵应用一些转换以获得更好的性能.
在第一帧:
下面是几乎可以工作的代码.不知怎的,它不一致,框架有时居中,有时偏移.我没有矩阵经验,所以如果有更多知识的人可以确认/修复/改进转换程序,我将不胜感激.该矩阵提供给画布绘制方法.
另外我想控制:
编辑:我想我可以用screenRect(目标矩形)控制精确缩小尺寸和底部中心位置?
基本剥离代码:
RectF screenRect = new RectF(0, 0, ((float) displayWith), ((float) displayHeight));
Matrix mirror = null;
if (isMirror) {
mirror = new Matrix();
mirror.setScale(-1, 1);
mirror.postTranslate(p.x, 0); // position X back to original point
}
Matrix scale = null;
if (isScaleDown) { // down-scale
scale = new Matrix();
scale.setRectToRect(imageRect, screenRect, Matrix.ScaleToFit.CENTER);
}
// COMBINED TRANSFORMATION MATRIX
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Matrix trans = null;
if (scale != null) trans = scale;
if (mirror != null && trans == null) trans = mirror;
if (mirror != null && trans != null) trans.setConcat(trans, mirror);
return trans;
Run Code Online (Sandbox Code Playgroud)
对于那些感兴趣的人,我最终以这种方式设置"scale"和"mirror"矩阵:
| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |