iPhone&Androidプログラミング記: カメラ機能を起動する方法
英語─上達しないのは努力不足が原因ではなかった!
英語が話せない…を解決する博士開発の噂の英語教材!返品保証付!

2009年03月27日

カメラ機能を起動する方法

Viewにボタンを配置したりタッチのイベントなどのタイミングで起動してみます。
自前でボタンのインスタンスを生成してViewにaddしたりしてもいいのですが、単純な確認用の場合はInterface Builderで追加してしまうのが楽です。

まずは@interfaceに、採用するプロトコルのUIImagePickerControllの記述を追加します。
【例】
CameraViewController.h

@interface CameraViewController: UIViewController
< UIImagePickerControllerDelegate, UINavigationControllerDelegate >
{
}



Viewに設置したボタンをタッチした時にカメラを起動してみる。
【例】
CameraViewController.m

- (void) btn_camera_DOWN:(id) sender
{
UIImagePickerControllerSourceType sourceType = 0;
sourceType = UIImagePickerControllerSourceTypeCamera;

//イメージピッカーを作る
UIImagePickerController* imagePicker;
imagePicker = [[UIImagePickerController alloc] init];
[imagePicker autorelease];
imagePicker.sourceType = sourceType;
imagePicker.allowImageEditing = YES;
imagePicker.delegate = self;

//イメージピッカーを表示する(カメラの起動)
[self presentModalViewController:imagePicker animated:YES];
}



キャンセルボタンを押して元の画面に戻るための処理。
この処理をしておかないと、再度イメージピッカーを呼び出す時にすでにイメージピッカーがあるためアプリが止まってしまいます。


- (void) imagePickerControllerDidCancel:(UIImagePickerController*)picker
{
//イメージピッカーを隠す
[self dismissModalViewControllerAnimated:YES];
}

カメラ起動中に画面上部に「Take Picture」などの文字が表示される。
この表示を消したい場合は以下を記述する。
消すだけでなくカスタマイズも出来るようです。

- (void)navigationController:(UINavigationController*)navigationController 
willShowViewController:(UIViewController*)viewController animated:(BOOL)animated
{
UIView* cameraView = [viewController.view.subviews objectAtIndex:0];
// ↓構成によってはobjectAtIndexを2とかにしないとダメっぽい
UIView* cropOverlay = [cameraView.subviews objectAtIndex:3];
UIView* imgView = [cropOverlay.subviews objectAtIndex:0];
UIView* lcdLayer = [cropOverlay.subviews objectAtIndex:1];
[imgView setHidden: YES];
[lcdLayer setHidden: YES];
}



ピクチャ 12.png

ピクチャ 13.png



iPhone SDKの教科書

Cocoa Touchプログラミング、最初の一歩 
icon
icon

最近出た本の紹介なのですが、結構売れているようです。
まだ読んでないので内容は知らないのですが、Amazonでのランキング上位に居たり、書籍を扱うネット通販のサイトで在庫切れになっている所があったりするので、内容もそこそこいいのかな?と思います。
どこかで見つけたら立ち読みしてみようと思います。


posted by ラキシス at 13:03 | Comment(0) | TrackBack(0) | iPhoneプログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。