Delphi for iOS開發指南(11):在iOS應用程序中拍照並共享照片

在開始這篇教程之前,你應該預先閱讀並按下面的這篇教程實際操作過:

 

  • iOS開發指南(4)::在iOS應用程序中使用不同風格的Button組件

 

這篇教程涵蓋了下面常用的任務:在iOS應用程序中如何使用照片。

 

這些功能由Actions提供,你只需要爲每個任務編寫一句代碼。

 

一個Action綁定一個或多個用戶界面元素,例如菜單項,工具欄按鈕,以及其他控件。

 

Actions提供兩種用途:

 

  • Action可以表示用戶界面元素的通用屬性-例如控件是否啓用,或者CheckBox是否勾選。
  • Action可以響應控件觸發的事件-例如當用戶點擊一個按鈕或是選擇一個菜單項。

 

在這篇教程中,你將會學習到如何將每個你想要支持的功能Action賦給用戶界面元素(例如按鈕)。

 

 

 

 

 

爲應用程序建立用戶界面

 

這個示例程序的用戶界面十分簡單,如下圖所示:

 

 

將下面這些組件放在Form Designer上:

 

  • TToolBar組件
  • 三個TButton組件。每個按鈕使用不同的圖標。
  • 爲這三個按鈕分別設置它們的StyleLookup屬性爲cameratoolbuttonbordered,searchtoolbuttonbordered,以及actiontoolbuttonbordered。
  • TImage組件
  • 設置Align屬性爲alClient。
  • TActionList組件

 

 

 

 

 

使用iOS Device的攝像頭拍照

 

你可以定義一個Action來使用iOS Device上的攝像頭拍照,通過使用下列步驟:

 

1.在Form Designer上,選擇用來拍照的那個按鈕。

2.在Object Inspector中,從Action屬性的下拉列表中選擇。

3.選擇New StandardAction|Media Library|TTakePhotoFromCameraAction:


4.在Events頁,展開Action結點,然後雙擊OnDidFinishTaking事件。


5.添加如下代碼到OnDidFinishTaking事件處理過程:

 

  1.    
  2. procedure TForm1.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap);  
  3. begin  
  4.   Image1.Bitmap.Assign(Image);  
  5. end;  
  6.   
  7.    
 
procedure TForm1.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap);
begin
  Image1.Bitmap.Assign(Image);
end;

 

 

 

 

這段代碼將iOS Device攝像頭拍下的照片賦給TImage組件的Bitmap屬性。

 

 

 

 

 

使用iOS Device照片庫裏的照片

 

你可以使用如下步驟定義一個Action來使用照片庫中的照片:

 

1.在Form Designer上,選擇一個你想要用來選擇照片的按鈕。

2.在Object Inspector中,點擊Action屬性的下拉列表,選擇New StandardAction|Media Library|TTakePhotoFromLibraryAction。

3.在Events頁,展開Action節點,然後雙擊OnDidFinishTaking事件。

4.在OnDidFinishTaking事件處理程序中添加如下代碼:

 

  1. procedureTForm1.TakePhotoFromLibraryAction1DidFinishTaking(Image: TBitmap);  
  2.   
  3. begin  
  4.   
  5.   Image1.Bitmap.Assign(Image);  
  6.   
  7. end;  
procedureTForm1.TakePhotoFromLibraryAction1DidFinishTaking(Image: TBitmap);

begin

  Image1.Bitmap.Assign(Image);

end;

 

 

上面這段代碼將照片庫中的照片賦給TImage組件的Bitmap屬性。

 

 

 

 

 

 

 

 

共享或打印照片

 

在iOS應用中,你可以共享照片到社交網站(例如FaceBook和TWitter)上,你也可以發送照片給打印機,使用照片作爲郵件附件,賦給聯繫人,等等。

這種多共享服務被稱爲Share Sheet Functionality,你可以按照下面的步驟來實現這些功能:

 

1.在Form Designer上,選擇一個用來共享照片的按鈕。

2.在Object Inspector中,在Action屬性中點擊下拉列表,然後選擇New StandardAction|Media Library|TShowShareSheetAction。

3.在Events頁,展開Action節點,然後雙擊OnBeforeExecute事件。

4.在OnBeforeExecute事件處理過程中添加如下代碼:

  1.    
  2.   
  3. procedureTForm1.ShowShareSheetAction1BeforeExecute(Sender: TObject);  
  4.   
  5. begin  
  6.   
  7.   ShowShareSheetAction1.Bitmap.Assign(Image1.Bitmap);  
  8.   
  9. end;  
 

procedureTForm1.ShowShareSheetAction1BeforeExecute(Sender: TObject);

begin

  ShowShareSheetAction1.Bitmap.Assign(Image1.Bitmap);

end;

 

 

上面這段代碼將TImage組件的照片賦給“Share SheetFunctionality”.

 

在你在服務列表中選擇FackBook之後,你可以使用你的組件來上傳照片到FaceBook上:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章