`
lyunabc
  • 浏览: 530335 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

Android ApiDemos示例解析(78):Graphics->ScaleToFit

 
阅读更多

在例子Android ApiDemos示例解析(74):Graphics->PolyToPoly 介绍在已知变换前后的坐标然后根据Matrix.setPolyToPoly 得到对于的变换矩阵。

此外Matrix也支持提供变换前后的两个矩形,通过setRectToRect 取得对应的变换矩阵。来看看setRectToRect 的定义:

public boolean setRectToRect(RectF src, RectF dst, Matrix.ScaleToFit stf)

  • src 坐标变换前的矩形
  • dst 坐标变换后的矩形
  • stf 矩形缩放选项

由于提供坐标变换前后的参数可为任意矩形,这样的话,变换前后矩形的长宽比不一定一样,提供指定Matrix.ScaleToFit选项来确定缩放选项。Matrix.ScaleToFit定义了四种选项:

  • CENTER: 保持坐标变换前矩形的长宽比,并最大限度的填充变换后的矩形。至少有一边和目标矩形重叠。
  • END:保持坐标变换前矩形的长宽比,并最大限度的填充变换后的矩形。至少有一边和目标矩形重叠。END提供右下对齐。
  • FILL: 可能会变换矩形的长宽比,保证变换和目标矩阵长宽一致。
  • START:保持坐标变换前矩形的长宽比,并最大限度的填充变换后的矩形。至少有一边和目标矩形重叠。START提供左上对齐。

ScaleToFit 绘制两个椭圆(一横一纵),两个圆 使用四种不同ScaleToFit选项的变换结果:

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics