程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi XE5 for android 圖片縮放和拖動處理

Delphi XE5 for android 圖片縮放和拖動處理

編輯:Delphi

首先,需要分辨手勢的類型。

有兩種類型的手勢:
一是標准手勢(Standard Gestures):
在Windows,android上,標准手勢都是用一個手指。
在Mac OS X and iOS上,是兩個手指。
手勢完成後(用戶拿起手指)後,OnGesture事件被觸發(如果一個標准的手勢進行識別)。

 


二是互動手勢(interactive Gestures):。
多點觸摸手勢(igZoom,igRotate,等等),它們相當於Windows系統的手勢,在Mac OS X,的iOS和Android上同樣支持。
每一次移動手指在觸摸表面上,一個OnGesture事件被觸發。

四個標准手勢向上,向下,向左和向右等同於交互式滑動手勢。

 

 

 

 


第三, 建議編程只使用互動手勢(interactive Gestures)就足夠滿足一般需要,並且盡量不要與標准手勢混合使用。

放大:
var
LObj: IControl;
image: TImage;

begin

LObj := Self.ObjectAtPoint(ClientToScreen(EventInfo.Location));
if LObj is TImage then
begin
if not(TInteractiveGestureFlag.gfBegin in EventInfo.Flags) then
begin
image := TImage(LObj.GetObject);
image.Width := image.Width + (EventInfo.Distance - FLastDIstance)/2;
image.Height := image.Height + (EventInfo.Distance - FLastDIstance)/2;
image.Position.X := image.Position.X - (EventInfo.Distance - FLastDIstance)/2;
image.Position.Y := image.Position.Y - (EventInfo.Distance - FLastDIstance)/2;
end;
end;
FLastDIstance := EventInfo.Distance;

end;

平移:

begin
LObj := Self.ObjectAtPoint(ClientToScreen(EventInfo.Location));
if LObj is TImage then
begin
if not(TInteractiveGestureFlag.gfBegin in EventInfo.Flags) then
begin
image := TImage(LObj.GetObject);
//Set the X coordinate.
image.Position.X := image.Position.X + (EventInfo.Location.X - FLastPosition.X);
if image.Position.X < 0 then
image.Position.X := 0;
if image.Position.X > (Panel1.Width - image.Width) then
image.Position.X := Panel1.Width - image.Width;

//Set the Y coordinate.
image.Position.Y := image.Position.Y + (EventInfo.Location.Y - FLastPosition.Y);
if image.Position.Y < 0 then
image.Position.Y := 0;
if image.Position.Y > (Panel1.Height - image.Height) then
image.Position.Y := Panel1.Height - image.Height;
end;

FLastPosition := EventInfo.Location;
end;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved