Delphi XE6 在两个图片切换的时候实现翻书效果


介绍

本文章实现了Delphi XE6 在两个图片切换的时候实现翻书效果,实现这个效果需要使用到TSwipeTransitionEffect 、TPathAnimation。

首先我们创建一个HD的FireMonkey工程,然后添加如下的控件:TImage、TSwipeTransitionEffect 、TSelectionPoint、TPathAnimation ,然后为Image控件加载一个图片,然后选择为TSwipeTransitionEffect选择返回的图片。

这样在Image控件的OnClick事件下添加如下代码
procedure TForm1.Image1Click(Sender: TObject);
begin
 PathAnimation1.Enabled := False;
 SelectionPoint1.Position.Point := PointF(0,0);
 SelectionPoint1.Opacity := 0;
 PathAnimation1.Parent := SelectionPoint1;
 PathAnimation1.Path.Clear;
// begin Path for mouse pointer
 PathAnimation1.Path.MoveTo(PointF(0,0));
 PathAnimation1.Path.LineTo(PointF(Form1.Width/2,Form1.Height/2));
 PathAnimation1.Path.LineTo(PointF(Form1.Width*2,0));
// end
 PathAnimation1.Duration := 2;
 PathAnimation1.Start;
end;


然后为TPathAnimation控件添加OnFinish、OnProcess事件代码
procedure TForm1.PathAnimation1Finish(Sender: TObject);
var
 BitMap : TBitmap;
begin
 BitMap := TBitmap.Create(0,0);
 BitMap.Assign(SwipeTransitionEffect1.Target);
 SwipeTransitionEffect1.Target := Image1.Bitmap;
 Image1.Bitmap.Assign(BitMap);
 SwipeTransitionEffect1.MousePoint := PointF(0,0);
end;

procedure TForm1.PathAnimation1Process(Sender: TObject);
begin
SwipeTransitionEffect1.MousePoint:=SelectionPoint1.Position.Point;
end;

联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678