2012年4月21日土曜日

[android] ものばぁVer1.1.1公開

ものばぁをVerUPしました。

機能追加として

・オリジナル画像、音声追加機能

※キャプチャーはカメラの映像は撮れないので表示されていませんが、カメラが表示されます。


・削除機能(画像ロングタップで削除確認)





















・チャイルドロック機能
端末の「戻る」ボタンをロングタップ(押下したまま保持する)すると
端末メニューボタンと削除機能を停止することができます。
(解除する場合も「戻る」ボタンロングタップ)


















アプリダウンロードはこちらから
「ものばぁ」

2012年4月6日金曜日

[デジモノ] Asus PadFone 発売は4/20(台湾)

アプリオより


MWC2012のプレスイベントで発表され、発売前から話題のASUS「Padfone」が、台湾で発売される。「engadget」によると、4月7日より予約を開始し、4月20日に発売を予定しているとのこと。
android-asus-padfone
「Padfone」は、スマートフォン型の端末で、Padfone Stationと呼ばれるタブレット型端末にPadfoneを格納することで、画面表示を「Padfone」と「Padfone Station」でシームレスに移行することが可能になる。
つまり、「Padfone」の画面をより大画面の「Padfone Station」に表示することができる。
「Padfone Station」は、同じASUSのEee Pad Transformerシリーズ(TF101やTF201)でお馴染みのキーボードドック(別売)と接続して利用することも可能だという。
android-asus-padfone
Padfoneは4.3インチディスプレイ、Android4.0(Ice Cream Sandwich)、デュアルコア1.5GHzプロセッサを搭載し、Padfone Stationは10.1インチサイズディスプレイとなっている。
日本での発売は未定だが、斬新な発想とデザインにより、注目を集めている端末である。

Padfone スペック

  • OS:Android 4.0
  • ディスプレイ:4.3インチ、解像度960x540 Super AMOLED
  • サイズ:128×65.4 X 9.2 mm
  • 重さ:129g
  • CPU:Qualcomm Snapdragon S4 8260A Dual-Core 1.5 GHz
  • メモリ:16/32/64GB eMMC
  • アウトカメラ:約800万画素、AF、LEDフラッシュ
  • バッテリー:1520mAh



[android] drawable/***.xmlにて画像の縦横幅を指定する方法

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
     android:state_pressed="true"
        android:width="100dp"
        android:height="50dp"
     android:drawable="@drawable/button_on"
    />
    <item
     android:state_pressed="false"
        android:width="100dp"
        android:height="50dp"
     android:drawable="@drawable/button_off"
    />
</selector>

item要素にandroid;width android:heightが使えます

2012年3月31日土曜日

[android] ものばぁVer1.0公開

アプリ第2弾。幼児をあやすためのアプリ「ものばぁ」をリリースしました。





















画像をタップすると、その『もの』が発する音が出ます。(音楽再生時の音量を使います。音量注意)






画像は「写真素材 足成」様から
音声は「効果音源」様から拝借しております。

アプリダウンロードはこちらから
「ものばぁ」

2012年2月25日土曜日

[objective-c] iPadでのUIImagePickerControllerの使い方

カメラを使う時のクラスとしてUIImagePickerControllerがありますが
iPadでこれを使う場合、iPhoneアプリと同様にコードを書くと動かない場合があります。


UIImagePickerController imagePicker = [[UIImagePickerController alloc] init];
 imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
 imagePicker.mediaTypes = [NSArray arrayWithObject:@"public.image"];
 imagePicker.delegate = self;
 [self presentModalViewController:imagePicker animated:YES];
 [imagePicker release];

iPhoneアプリ同様でOK


UIImagePickerController imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.delegate = self;
 [self presentModalViewController:imagePicker animated:YES];
 [imagePicker release];

としたいところですがこれでは駄目

UIImagePickerController imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.delegate = self;
UIPopoverController uiPopoverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[uiPopoverController presentPopoverFromBarButtonItem:targetElm // 基点となるUI
                                       permittedArrowDirections:UIPopoverArrowDirectionAny 
                                                       animated:YES];

UIPopoverControllerでラップすることによって表示することが可能です。

2012年2月23日木曜日

[ツール] syntaxhighliter 3.xをobjective-cに対応させる

ブログにソースを乗っける時の定番のsyntaxhighlighterですが
標準ではobjective-cに対応していません。

調べたところ有志の方がobjective-c用のプラグインを作成していますので
http://blog-imgs-47.fc2.com/d/e/v/dev2next/shBrushObjectiveC.js
↑からjsファイルをダウンロードし、headタグ内にincludeします。
(参照:アプリ開発の記録)

利用する箇所で
<pre class="brush: objc";></pre>とソースコードを囲めば、Xcodeでコードしたような表示が可能です。


・おまけ
syntaxhighlighterが未導入の方は以下のサイトからincludeタグを生成すると楽です。

HOW TO ADD SYNTAX HIGHLIGHTER(V3) TO BLOGGER BLOGS

リンク切れが心配な方は全部のjsファイルを引っ張っておきませう

2012年2月22日水曜日

[objective-c] objective-cでAsyncTaskみたいな非同期処理

testOperation.h
@interface testOperation : NSOperation {
    BOOL isExecuting, isFinished;
}
@end

testOperation.m
#import "testOperation.h"

@implementation testOperation

-(void) dealloc {
    [super dealloc];
}
- (BOOL)isExecuting {
    return isExecuting;
}
- (BOOL)isFinished {
    return isFinished;
}

/**
 * 処理メイン
 */
-(void) main {
    LOG_METHOD;
    for (;;) {
        // 〜適当なループ処理など
        if ([self isCancelled])
                break; // キャンセルの場合にループを抜けるなりreturnするなり
    }
}

@end


呼び出し元
- (void) hogehoge {
    NSOperationQueue * _queue;
    _queue = [[NSOperationQueue alloc] init];
    // 1つ目のリクエスト
    testOperation *ope1 = [[[testOperation alloc] init]retain];;
    [ope1 autorelease];
    // 終了監視
    [ope1 addObserver:self forKeyPath:@"isFinished" 
                   options:NSKeyValueObservingOptionNew context:nil];
    // キュー実行
    [_queue addOperation:ope1];
}

- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object 
                        change:(NSDictionary*)change context:(void*)context
{
    LOG_METHOD;
    // タスク終了時の処理
    // 〜〜〜〜

    // キー値監視を解除する
    [object removeObserver:self forKeyPath:keyPath];
}