<第1実施例>
図1を参照して、この発明の一実施例の携帯電話機10は、一例としてスマートフォンであり、縦長の扁平矩形のハウジング12を含む。ただし、この発明は、タブレット端末およびPDAなど任意の携帯端末に適用可能であることを予め指摘しておく。
ハウジング12の主面(表面)には、表示部として機能し、たとえば液晶や有機ELなどのディスプレイ14が設けられる。ディスプレイ14の上には、タッチパネル16が設けられる。
ハウジング12の縦方向一端の表面側にスピーカ18が内蔵され、縦方向他端の表面側にマイク20が内蔵される。タッチパネル16と共に、入力操作手段を構成するハードキーとして、この実施例では、通話キー22a、終話キー22bおよびメニューキー22cが設けられる。
たとえば、ユーザは、ディスプレイ14に表示されたダイヤルキー(図示せず)に対して、タッチパネル16によってタッチ操作を行うことで電話番号を入力でき、通話キー22aを操作して音声通話を開始することが出来る。ユーザは、終話キー22bを操作すれば、音声通話を終了することが出来る。なお、ユーザは、この終話キー22bを長押しすることによって、携帯電話機10の電源をオン/オフすることが出来る。
また、ユーザは、メニューキー22cを操作すれば、ディスプレイ14にメニュー画面が表示される。その状態で、ユーザは、ディスプレイ14に表示されているソフトキーやメニューアイコン(ともに図示せず)などに対して、タッチパネル16によるタッチ操作を行うことによってメニューを選択し、その選択を確定させることが出来る。
図2を参照して、図1に示す実施例の携帯電話機10は、コンピュータまたはCPUと呼ばれるプロセッサ30を含む。プロセッサ30には、無線通信回路32、A/D変換器36、D/A変換器38、入力装置40、表示ドライバ42、フラッシュメモリ44、RAM46およびタッチパネル制御回路48などが接続される。
プロセッサ30は、携帯電話機10の全体制御を司る。記憶部として機能するRAM46には、フラッシュメモリ44に予め設定されているプログラムの全部または一部が使用に際して展開され、プロセッサ30はこのRAM46上のプログラムに従って動作する。なお、RAM46はさらに、プロセッサ30のワーキング領域ないしバッファ領域として用いられる。
入力装置40は、図1に示すタッチパネル16、ハードキー22a−22cを含むものであり、操作部または入力部を構成する。ユーザが操作したハードキーの情報(キーデータ)はプロセッサ30に入力される。
無線通信回路32は、アンテナ34を通して、音声通話やメールなどのための電波を送受信するための回路である。実施例では、無線通信回路32は、CDMA方式での無線通信を行うための回路である。たとえば、ユーザが通話キー22aを操作して電話発信(発呼)を指示すると、無線通信回路32は、プロセッサ30の指示の下、電話発信処理を実行し、アンテナ34を介して電話発信信号を出力する。電話発信信号は、基地局および通信網を経て相手の電話機に送信される。そして、相手の電話機において着信処理が行われると、通信可能状態が確立され、プロセッサ30は通話処理を実行する。
通常の通話処理について具体的に説明すると、相手の電話機から送られてきた変調音声信号はアンテナ34によって受信される。受信された変調音声信号には、無線通信回路32によって復調処理および復号処理が施される。そして、これらの処理によって得られた受話音声信号は、D/A変換器38によって音声信号に変換された後、スピーカ18から出力される。一方、マイク20を通して取り込まれた送話音声信号は、A/D変換器36によって音声データに変換された後、プロセッサ30に与えられる。音声データには、プロセッサ30の指示の下、無線通信回路32によって符号化処理および変調処理が施され、アンテナ34を介して出力される。したがって、変調音声信号は、相手の電話機に送信される。
また、相手の電話機からの電話発信信号がアンテナ34によって受信されると、無線通信回路32は、電話着信(着呼)をプロセッサ30に通知する。これに応じて、プロセッサ30は、表示ドライバ42を制御して、着信通知に記述された発信元情報(電話番号など)をディスプレイ14に表示する。また、上記処理に伴い、プロセッサ30は、スピーカ18から着信音(着信メロディ、着信音声と言うこともある。)を出力させる。
そして、ユーザが入力装置40に含まれる通話キー22aを用いて応答操作を行うと、無線通信回路32は、プロセッサ30の指示の下、電話着信処理を実行する。さらに、通信可能状態が確立され、プロセッサ30は上述した通話処理を実行する。
また、通話可能状態に移行した後に入力装置40に含まれる終話キー22bによって通話終了操作が行われると、プロセッサ30は、無線通信回路32を制御して、通話相手に通話終了信号を送信する。そして、通話終了信号の送信後、プロセッサ30は通話処理を終了する。また、先に通話相手から通話終了信号を受信した場合も、プロセッサ30は通話処理を終了する。さらに、通話相手によらず、移動通信網から通話終了信号を受信した場合も、プロセッサ30は通話処理を終了する。
A/D変換器36には図1に示すマイク20が接続され、上述のようにマイク20からの音声信号はこのA/D変換器36でデジタルの音声データに接続され、プロセッサ30に入力される。一方、D/A変換器38にはスピーカ18が接続される。D/A変換器38は、デジタルの音声データを音声信号に変換して、アンプを介してスピーカ18に与える。したがって、音声データの音声がスピーカ18から出力される。
なお、プロセッサ30は、たとえばユーザによるボリュームの操作に応答して、D/A変換器38に接続されるアンプの増幅率を制御することによって、スピーカ18から出力される音声の音量を調整することが出来る。
表示ドライバ42はディスプレイ14およびプロセッサ30と接続され、プロセッサ30から出力される画像データは、表示ドライバ42のVRAMに記憶される。そして、表示ドライバ42は、VRAMのデータに対応する画像を、ディスプレイ14に表示する。つまり、表示ドライバ42は、プロセッサ30の指示の下、当該表示ドライバ42に接続されたディスプレイ14の表示を制御する。また、ディスプレイ14には、たとえばLEDなどを光源とするバックライトが設けられており、表示ドライバ42はプロセッサ30の指示に従って、そのバックライトの明るさや、点灯/消灯を制御する。なお、本実施例のディスプレイ14には、キー、アイコンなどのGUI、文字、画像および実行されている機能に対応する画面などが表示される。たとえば、地図機能が実行されている場合、ディスプレイ14には、地図が表示される。
タッチパネル制御回路48には、図1に示すタッチパネル16が接続される。タッチパネル制御回路48は、タッチパネル16に必要な電圧などを付与するとともに、タッチパネル16に対するユーザによるタッチの開始を示す開始信号、ユーザによるタッチの終了を示す終了信号、およびユーザがタッチしたタッチ位置を示す座標データをプロセッサ30に入力する。したがって、プロセッサ30はタッチ位置を示す座標データに基づいて、ディスプレイ14に表示されたGUIなどに対して、タッチ操作が行われたものかを判断することが出来る。
実施例では、タッチパネル16は、指などの物体が表面に接近して生じた電極間の静電容量の変化を検出する静電容量方式で、たとえば1本または複数本の指がタッチパネル16に触れたことを検出する。また、タッチパネル16は、ディスプレイ14の画面内で、任意の位置を指示するためのポインティングデバイスである。タッチパネル制御回路48はタッチパネル16のタッチ有効範囲内でのタッチ操作を検出して、そのタッチ操作の位置を示す座標データをプロセッサ30に出力する。つまり、ユーザは、タッチパネル16の表面をタッチ、リリース、スライドおよびそれらの組み合わせた操作で、操作位置や、操作方向などを携帯電話機10に入力する。
なお、タッチパネル16の検出方式には、表面型の静電容量方式が採用されてもよいし、抵抗膜方式、超音波方式、赤外線方式および電磁誘導方式などが採用されてもよい。また、タッチ操作はユーザの指だけに限らず、スタイラスペンなどによって行われてもよい。
図3(A)はディスプレイ14の表示の一例を示す図解図である。図3(A)を参照して、ディスプレイ14には、状態表示領域70および機能表示領域72が含まれる。状態表示領域70には、アンテナ34による電波受信状態を示すアイコン(ピクト)、二次電池の残電池容量を示すアイコンおよび日時が表示される。たとえば、機能表示領域72には、表示の一例として文字列を示す画像が表示されている。
ここで、本実施例では、タッチパネル16を利用して円弧が描かれたとき、中心角(円弧角)が閾値(たとえば、180度)以上であれば、ディスプレイ14の表示は、拡大または縮小される。
図3(B),(C)を参照して、プロセッサ30が実行する第1実施例の拡大処理について説明する。タッチパネル16の表面上でスライドするタッチ操作が受け付けられると、プロセッサ30は閾値以上の中心角となる円弧が描かれたかを判断する。このとき、プロセッサ30は、右回転の方向(以下、単に右回転と言う。)で円弧が描かれ、中心角が閾値以上となれば、表示を拡大する操作であると判断する。その後、タッチパネル16の表面上で、中心CCが既に描かれた円弧の中心と略一致し、かつ操作の開始位置Sを通る円が描かれると、プロセッサ30は、中心角が閾値以上となってからのタッチ操作の移動量に基づいて拡大倍率を算出する。そして、算出された拡大倍率に応じて、ディスプレイ14に表示された文字列を示す画像が拡大される。つまり、ユーザは、右回転で略同じ大きさの同心円を描くことで、ディスプレイ14の表示を任意の大きさに拡大することが出来る。
次に、プロセッサ30が実行する第1実施例の縮小処理について説明する。図4(A)−(C)を参照して、プロセッサ30は、表示を縮小する操作であるかを判断する。具体的には、プロセッサ30は、ディスプレイ14の表面上に左回転の方向(以下、単に左回転と言う。)で円弧が描かれ、かつその円弧の中心角が閾値以上であるかを判断する。また、左回転の方向で描かれた円弧の中心角が閾値以上だと判断された後に、中心CCが既に描かれた円弧の中心と略一致し、かつ操作の開始位置Sを通る円がタッチパネル16の表面上に描かれると、プロセッサ30は、中心角が閾値以上となってからのタッチ操作の移動量に基づいて、縮小倍率を算出する。そして、算出された縮小倍率に応じて、ディスプレイ14に表示された文字列を示す画像が縮小される。つまり、ユーザは、左回転で略同じ大きさの同心円を描くことで、ディスプレイ14の表示を任意の大きさに縮小することが出来る。
このように、ユーザは、中心角が閾値以上となるように円を描くことで、ディスプレイ14の表示を拡大または縮小することが出来る。特に、図3(B)に示すように、略同じ大きさの同心円は片手で携帯電話機10を持ったまま描くことも出来るため、ユーザは表示の拡大または縮小を片手で容易に行うことが出来る。
また、タッチ操作の移動量に基づいて、ディスプレイ14の表示の拡大倍率または縮小倍率が算出されるため、ユーザは表示の大きさを容易に調整することができる。
なお、描画された円弧から中心CCを求め、中心角を算出する手法は、広く一般的に知られているため、ここでの詳細な説明は省略する。
図5(A)を参照して、右回転の円を描いて表示を拡大しているときに、タッチパネル16から指を離さずに左回転の円が描かれると、表示は縮小される。また、図示しないが、タッチ操作により左回転の円が描かれディスプレイ14の表示が縮小されているときに、タッチパネル16の表面上より指を離さずに右回転の円が描かれると、ディスプレイ14の表示は拡大される。
つまり、プロセッサ30によって拡大または縮小操作だと判断されていれば、ユーザは任意の方向に円弧を描くことで、ディスプレイ14の表示を拡大または縮小することが出来る。つまり、ユーザは、表示の大きさを微調整することが出来る。
なお、第1実施例では、後から描かれた円の中心および軌跡が、最初に描かれた円の中心CCおよび開始位置Sから所定範囲内でずれていたとしても、プロセッサ30は略同じ大きさの同心円と判断する。
また、第1実施例では、拡大または縮小の中心は円の中心CCとなる。そのため、字列を示す画像の中に中心CCが含まれていれば、文字列を示す画像を中心として拡大または縮小される。
以上で実施例の特徴を概説したが、以下には、図6に示す携帯電話機10のRAM46のメモリマップ、図7,8に示す携帯電話機10のプロセッサ30によるフロー図を用いて詳細に説明する。
図6を参照して、図2に示すRAM46には、プログラム記憶領域302とデータ記憶領域304とが形成される。プログラム記憶領域302は、先に説明したように、フラッシュメモリ44(図2)に予め設定しているプログラムデータの一部または全部を読み出して記憶(展開)しておくための領域である。
プログラム記憶領域302には、ディスプレイ14の表示の大きさを変化させるための表示制御プログラムなどが含まれる。なお、プログラム記憶領域302には、電話機能などを実行するためのプログラムも含まれる。
RAM46のデータ記憶領域304には、タッチバッファ330、移動量バッファ332および拡大/縮小バッファ334などが設けられる。また、データ記憶領域304には、タッチ座標マップデータ336、GUIデータ338、GUI座標データ340および設定データ342が記憶されると共に、タッチフラグ344および拡大/縮小フラグ346なども設けられる。
タッチバッファ330には、タッチパネル制御回路48が出力するタッチ座標のデータが記憶される。移動量バッファ332には、円弧の中心角が閾値を超えてから検出された、タッチ座標の移動量が一時的に記憶される。拡大/縮小バッファ334には、算出された拡大倍率または縮小倍率が一時的に記憶される。
タッチ座標マップデータ336は、タッチ操作におけるタッチ座標と、ディスプレイ14の表示座標とを対応付けるためのデータである。つまり、タッチ座標マップデータ336に基づいて、タッチパネル16に対して行われたタッチ操作の結果が、ディスプレイ14の表示に反映される。
GUIデータ338は、ディスプレイ14にキーやアイコンなどを表示するための画像データや文字列データを含む。GUI座標データ340は、ディスプレイ14に表示されているGUIの表示の座標データを含む。したがって、タッチパネル16の表面上でタッチが検出されると、タッチバッファ330に記録されているタッチ座標と、GUI座標データ340とに基づいて、プロセッサ30はキーなどのGUIに対してタッチ操作が行われたかを判断する。設定データ342は、第2実施例で詳細に説明するが、表示制御処理における設定が含まれる。
タッチフラグ344は、タッチパネル16の表面上に、指などによってタッチされているか否かを判断するためのフラグである。たとえば、タッチフラグ344は、1ビットのレジスタで構成される。タッチフラグ344がオン(成立)されると、レジスタにはデータ値「1」が設定される。一方、タッチフラグ344がオフ(不成立)されると、レジスタにはデータ値「0」が設定される。タッチフラグ344は、タッチパネル制御回路48の出力に基づいてオン/オフが切り替えられる。
拡大/縮小フラグ346は、表示を拡大または縮小可能な状態であるか否かを判断するためのフラグである。
なお、データ記憶領域304には、待機状態で表示される画像データや、文字列のデータなどが記憶されると共に、携帯電話機10の動作に必要なカウンタや、フラグも設けられる。
プロセッサ30は、Android(登録商標)およびREXなどのLinux(登録商標)ベースのOSや、その他のOSの制御下で、図7,8に示す表示制御処理などを含む、複数のタスクを並列的に処理する。
表示制御処理は、たとえばディスプレイ14に拡大または縮小可能な画像が表示されると開始される。ステップS1でプロセッサ30は、タッチされたか否かを判断する。つまり、プロセッサ30は、タッチフラグ344がオンであるかを判断する。ステップS1で“NO”であれば、つまりタッチ操作がされておらず、タッチフラグ344がオフであれば、プロセッサ30はステップS1の処理を繰り返す。
一方、ステップS1で“YES”であれば、つまりタッチされ、タッチフラグ344がオンであれば、ステップS3でプロセッサ30は、軌跡の中心角が閾値以上か否かを判断する。つまり、プロセッサ30は、タッチ操作の軌跡から円弧の中心角を求め、その中心角が閾値以上であるかを判断する。ステップS3で“NO”であれば、たとえば円弧が描かれていないか、中心角が閾値未満であれば、プロセッサ30はステップS1に戻る。なお、タッチ操作の軌跡が円弧でない、もしくは、円弧の半径が一定値以上であると、ステップS1で“NO”と判断される。
一方、ステップS3で“YES”であれば、たとえば中心角が閾値以上の円弧が描かれると、プロセッサ30はステップS5で、拡大/縮小フラグ346をオンにする。つまり、拡大または縮小可能な状態であるため、拡大/縮小フラグ346がオンにされる。
続いて、ステップS7ではスライドしたか否かを判断する。つまり、プロセッサ30は、中心角が閾値を超えてからスライドのタッチ操作が行われたかを判断する。また、具体的には、タッチバッファ330に格納されている現在のタッチ座標が変化したかが判断される。ステップS7で“NO”であれば、つまりスライドしていなければ、プロセッサ30はステップS7の処理を繰り返す。一方、ステップS7で“YES”であれば、つまりスライドすると、ステップS9でプロセッサ30は、移動量を算出する。たとえば、タッチバッファ330に記憶されているタッチ座標の履歴に基づいて、スライドによるタッチ操作の移動量が算出される。算出された移動量は、移動量バッファ332に一時的に記憶される。なお、ステップS9の処理を実行するプロセッサ30は移動量算出部として機能する。
続いて、ステップS11でプロセッサ30は、拡大する方向か否かを判断する。つまり、右回転のスライドによって同心円が描かれているかが判断される。ステップS11で“YES”であれば、たとえば図3(C)に示すように右回転のスライドがされていれば、ステップS13でプロセッサ30は、移動量に基づいて拡大倍率を算出する。つまり、プロセッサ30は、移動量バッファ332に記憶されている移動量に基づいて、表示の拡大倍率を算出する。算出された拡大倍率は、拡大/縮小バッファ334に一時的に記憶される。続いて、ステップS15でプロセッサ30は、拡大倍率に基づいて表示を拡大する。たとえば、図3(A)−(C)に示すように、ディスプレイ14の表示が拡大される。そして、ステップS15の処理が終了すれば、プロセッサ30はステップS23に進む。
一方、ステップS11で“NO”であれば、つまりタッチパネル16の表面上で右回転のスライドがされていなければ、ステップS17でプロセッサ30は、縮小する方向か否かを判断する。つまり、プロセッサ30は、左回転のスライドによって同心円が描かれているかが判断される。ステップS17で“YES”であれば、たとえば図4(C)に示すように左回転のスライドがされていれば、ステップS19でプロセッサ30は移動量に基づいて縮小倍率を算出する。つまり、移動量バッファ332に記憶されている移動量に基づいて、表示の縮小倍率を算出する。算出された縮小倍率は、拡大/縮小バッファ334に一時的に記憶される。続いて、ステップS21でプロセッサ30は、縮小倍率に基づいて表示を縮小する。たとえば、図4(A)−(C)に示すように、ディスプレイ14の表示が縮小される。
また、ステップS17で“NO”であれば、たとえば円弧が描かれていなければ、プロセッサ30はステップS23に進む。
なお、ステップS13またはステップS19の処理を実行するプロセッサ30は倍率算出部として機能する。また、ステップS15またはステップS21の処理を実行するプロセッサ30は表示制御部として機能する。
続いて、ステップS23でプロセッサ30は、リリースされたか否かを判断する。つまり、タッチフラグ344がオフであるかが判断される。ステップS23で“NO”であれば、つまりリリースされていなければ、プロセッサ30はステップS27に進む。一方、ステップS23で“YES”であれば、つまりリリースされると、ステップS25でプロセッサ30は、拡大/縮小フラグ346をオフにする。つまり、リリースされ表示を拡大または縮小可能な状態ではなくなったため、拡大/縮小フラグ346がオフにされる。
続いて、ステップS27でプロセッサ30は、拡大/縮小フラグ346がオフであるか否かを判断する。ステップS27で“NO”であれば、たとえばユーザがタッチ操作を続けていれば、プロセッサ30はステップS7に戻る。一方、ステップS27で“YES”であれば、たとえばユーザがタッチ操作を止めていれば、プロセッサ30は表示制御処理を終了する。
<第2実施例>
第2実施例では、表示の拡大または縮小について、ユーザは任意に設定することが出来る。
まず、拡大または縮小の中心が固定された状態について説明する。図9(A),(B)を参照して、ディスプレイ14の機能表示領域72の中心DCよりも上側には文字列を示す画像が表示されている。この状態で、任意の位置で左回転の同心円が描かれると、表示の中心DCを中心として、表示が縮小される。なお、図示は省略するが、右回転の同心円が描かれた場合、中心DCを中心として、表示が拡大される。
次に、同心円とは異なる操作で、表示の拡大または縮小について説明する。図10(A)を参照して、拡大しようとする位置を開始位置Sとして、外巻きの方向(以下、単に外巻きと言う。)で渦巻きが描かれると、表示が拡大される。一方、図10(B)を参照して、渦巻きの中心が縮小しようとする位置となるように、内巻きの方向(以下、単に内巻きと言う。)で渦巻が描かれると、表示が縮小される。
このように、直感的なタッチ操作で、ユーザは表示の拡大または縮小を行うことが出来る。
なお、渦巻きによる拡大または縮小においても、閾値以上の中心角となるような円弧が描かれなければ、第1実施例と同様、拡大または縮小可能な状態と判断されない。また、他の実施例では、渦巻きの回転方向(右回転、左回転)によって、表示が拡大または縮小されてもよい。
そして、これらのことは、図11に示す設定画面を利用することで、ユーザは任意に設定することができる。図11を参照して、設定画面には、「1.操作」の項目、「2.回転操作」の項目および「3.拡大/縮小の基準」の項目が含まれる。また、各項目には、チェックボックスが含まれ、このチェックボックスはタッチされると、チェックの有無が切り替わる。また、各項目における複数のチェックボックスでは、チェックが入れられているチェックボックスは1つだけとなるように処理される。
「1.操作」の項目には、「同心円」または「渦巻き」を選択するためのチェックボックスが含まれる。たとえば、「同心円」のチェックボックスに対するタッチ操作によってチェックが入れられると、第1実施例のように同心円が描かれると、表示が拡大または縮小される。また、渦巻きのチェックボックスに対するタッチ操作によってチェックが入れられると、第2実施例の図10に示すように、渦巻きが描かれると、表示が拡大または縮小される。
「2.回転操作」の項目には、「右回転/左回転」に対応して、「拡大/縮小」、「縮小/拡大」または「何もしない」を選択するためのチェックボックスが含まれる。たとえば、「拡大/縮小」に対するタッチ操作によってチェックが入れられると、右回転で拡大し左回転で縮小する。「縮小/拡大」に対するタッチ操作によってチェックが入れられると、右回転で縮小し左回転で縮小する。「何もしない」に対するタッチ操作によってチェックが入れられると、どちらの回転がされても拡大または縮小されない。なお、「1.操作」で「渦巻き」のチェックボックスにチェックが入れられている場合、「2.回転操作」の項目は設定できない状態となる。
「3.拡大/縮小の基準」の項目には、「ユーザ操作」または「固定」を選択するためのチェックボックスが含まれる。たとえば、「同心円」および「ユーザ操作」のチェックボックスにチェックが入れられえていれば、第1実施例のように同心円の中心が拡大または縮小の基準にされる。「渦巻き」および「ユーザ操作」のチェックボックスにチェックが入れられていれば、第2実施例の図10に示すように渦巻きの開始位置Sが拡大の中心とされるか、渦巻きの中心が縮小の中心とされる。また、「固定」のチェックボックスにチェックが入れられていれば、第2実施例の図9(A),(B)に示すように、同心円または渦巻きの操作に関係なく、表示の中心DCを中心として、表示が拡大または縮小される。
なお、設定画面で設定された結果は、設定データ342としてRAM46に記憶される。また、設定画面の初期状態は、第1実施例と同じ動作が行われるように、設定されている。つまり、各項目では「同心円」、「拡大/縮小」および「ユーザ操作」にチェックが入れられている状態となる。
図12は、第2実施例の表示制御処理のフロー図である。なお、第1実施例の表示制御処理と同じ処理については、同じステップ番号を付してある。
第2実施例の表示制御処理が実行されると、ステップS41でプロセッサ30は、設定データ342を読み出す。これにより、ユーザの初期設定に基づいて、第2実施例の表示制御処理が実行される。なお、ステップS41に続くステップS1−S5は、第1実施例と同じであるため説明を省略する。
図13を参照して、ステップS5の処理が終了すると、ステップS43でプロセッサ30は、同心円か否かを判断する。つまり、設定データ342において「同心円」が選択された状態で、同心円が描かれているかが判断される。ステップS43で“YES”であれば、つまり「同心円」の項目が選択された状態で、同心円が描かれていれば、プロセッサ30はステップS9に進む。
一方、ステップS43で“NO”であれば、たとえば「同心円」が選択されていないか、同心円が描かれていなければ、ステップS45でプロセッサ30は、渦巻きか否かが判断される。つまり、設定データ342において「渦巻き」が選択された状態で、渦巻きが描かれているかが判断される。ステップS45で“NO”であれば、たとえば渦巻きが選択された状態でないか、渦巻きが描かれていなければ、プロセッサ30はステップS43に戻る。一方、ステップS45で“YES”であれば、たとえば渦巻きが描かれていれば、プロセッサ30はステップS9で、移動量を算出する。
続いて、ステップS11でプロセッサ30は、拡大する方向か否かを判断する。たとえば、設定データ342において「同心円」および「拡大/縮小」が選択されていれば、右回転で同心円が描かれているかが判断される。一方、「縮小/拡大」が選択されていれば、左回転で同心円が描かれているかが判断される。また、設定データ342において「渦巻き」が選択されていれば、外巻きで渦巻きが描かれているかが判断される。
ステップS11で“YES”であれば、たとえば図10(A)に示すように外巻きで渦巻きが描かれていれば、プロセッサ30は、ステップS13で拡大倍率を算出し、ステップS15で表示を拡大する。このとき、図11に示す「3.拡大/縮小の基準」で「ユーザ操作」が選択されていれば、同心円の中心または渦巻きの開始位置Sを基準として、表示が拡大される。一方、「固定」が選択されていれば、ユーザのタッチ操作に関係なく、表示の中心DCを中心として、表示が拡大される。
一方、ステップS11で“NO”であれば、たとえば外巻きで渦巻きが描かれていなければ、ステップS17でプロセッサ30は、縮小する方向か否かを判断する。たとえば、設定データ342において「同心円」および「拡大/縮小」が選択されていれば、左回転で同心円が描かれているかが判断される。一方、「縮小/拡大」が選択されていれば、右回転で同心円が描かれているかが判断される。また、設定データ342において「渦巻き」が選択されていれば、内巻きで渦巻きが描かれているかが判断される。ステップS17で“NO”であれば、たとえば、「何もしない」が選択されていれば、プロセッサ30はステップS23に進む。
ステップS17で“YES”であれば、たとえば図10(B)に示すように内巻きで渦巻きが描かれていれば、プロセッサ30はステップS19で縮小倍率を算出し、ステップS21で表示を縮小する。このとき、図11に示す「3.拡大/縮小の基準」で「ユーザ操作」が選択されていれば、同心円の中心または渦巻きの中心を基準として、表示が縮小される。一方、「固定」が選択されていれば、ユーザのタッチ操作に関係なく、表示の中心DCを中心として、表示が縮小される。
なお、ステップS23−S27の処理は、第1実施例と同じであるため、ここでの詳細な説明は省略する。
<第3実施例>
第3実施例では、タッチパネル16の表面上で、閾値(たとえば、360度)以上の中心角で円が描かれると、所定の拡大倍率または縮小倍率が読み出され、表示が拡大または縮小される。
図14(A),(B)を参照して、ユーザがタッチパネル16の表面上で右回転の円を描くと、第1所定倍率(たとえば、150%)が読み出され、ディスプレイ14の表示が拡大される。一方、図15(A),(B)を参照して、ユーザがタッチパネル16の表面上で左回転の円を描くと、第2所定倍率(たとえば、80%)が読み出され、ディスプレイ14の表示が縮小される。このように、ユーザは、より単純な操作で、ディスプレイ14の表示を拡大または縮小することができる。
図16を参照して、第3実施例の設定画面には、第2実施例とは異なり、「1.回転操作」の項目および「2.倍率」の項目が含まれる。
「1.回転操作」は第2実施例の「2.回転操作」と同じであるため、「1.回転操作」の詳細な説明は省略する。ただし、「縮小/拡大」にチェックが入れられている場合は、右回転で縮小され、左回転で拡大される。
「2.倍率」は、拡大倍率および縮小倍率を予め設定するための項目である。たとえば、拡大倍率入力領域80にタッチ操作がされると、拡大倍率として任意の数値を入力可能なGUIが表示される。一方、縮小倍率入力領域82にタッチ操作がされると、縮小倍率として任意の数値を有力可能なGUIが表示される。ただし、他の実施例では、入力可能な拡大倍率および縮小倍率の範囲が設定されていてもよい。たとえば、拡大倍率の範囲は「101%から200%」であり、縮小倍率の範囲は「1%から99%」である。
なお、第3実施例の設定画面で設定された内容は、第2実施例と同様、設定データ342に記憶される。また、第3実施例でも、拡大または縮小の中心が、ディスプレイ14の表示の中心DCであってもよい。また、図14および図15では、閾値を360度として説明したが、他の実施例では、360度以下であってもよいし、360度より大きくてもよい。また、その他の実施例では、タッチパネル16の表面上で描画された円の半径の大きさに基づいて、拡大倍率または縮小倍率が変化してもよい。
図17は、第3実施例の表示制御処理のフロー図である。なお、第1実施例および第2実施例の表示制御処理と同じ処理については、同じステップ番号を付してある。
第3実施例の表示制御処理が実行されると、プロセッサ30は、ステップS41およびステップS1を実行する。ステップS1で“YES”であれば、つまりタッチがされると、ステップS61でプロセッサ30は、円が描画されたか否かを判断する。つまり、タッチパネル16の表面上で、閾値以上の中心角の円が描かれたかが判断される。ステップS61で“NO”であれば、つまり円が描かれていなければ、プロセッサ30はステップS61の処理を繰り返す。
ステップS61で“YES”であれば、つまり円が描かれると、ステップS11でプロセッサ30は、拡大する方向か否かを判断する。つまり、描かれた円が拡大する方向のタッチ操作であるかが判断される。ステップS11で“YES”であれば、たとえば右回転で円が描かれると、ステップS63でプロセッサ30は、拡大倍率を取得する。つまり、設定データ342から予め設定された拡大倍率(たとえば、150%)が取得される。続いて、ステップS15でプロセッサ30は、取得された拡大倍率に基づいて、表示を拡大する。なお、ステップS15の処理が終了すれば、プロセッサ30は表示制御処理を終了する。
一方、ステップS11で“NO”であれば、つまり拡大する方向でなければ、ステップS17でプロセッサ30は、縮小する方向か否かを判断する。ステップS17で“YES”であれば、たとえば左回転で円が描かれると、ステップS65でプロセッサ30は、縮小倍率を取得する。つまり、設定データ342から予め設定された縮小倍率(たとえば、80%)が取得される。続いて、ステップS21でプロセッサ30は、取得された縮小倍率に基づいて、表示を縮小する。そして、ステップS21の処理が終了すれば、プロセッサ30は表示制御処理を終了する。
また、ステップS17で“NO”であれば、たとえば「何もしない」にチェックが入れられていれば、プロセッサ30は表示制御処理を終了する。
なお、拡大操作または縮小操作の軌跡を図示したが、実際には軌跡は表示されなくてもよい。
また、第1実施例および第2実施例では、移動量の算出は、中心角が閾値を超えてから行われていたが、他の実施例では、タッチパネル16の表面上でタッチ操作が受け付けられてから移動量が算出されてもよい。
また、拡大または縮小する操作であるかは、中心角ではなく、円弧の長さと半径の比率などに基づいて判断されてもよい。
また、これらの実施例では、文字列に対応する画像を利用して拡大または縮小について説明したが、写真などの画像が拡大または縮小されてもよいことは、言うまでもない。また、本実施例の拡大または縮小には、地図の縮尺の拡大または縮小も含まれる。
また、他の実施例では、拡大または縮小操作中に、拡大倍率または縮小倍率が表示されてもよい。たとえば、図18を参照して、拡大倍率または縮小倍率は、倍率アイコン90によって示される。これにより、ユーザは、拡大操作または縮小操作を行いながら、拡大倍率または縮小倍率を認識することが出来る。そのため、ユーザは、より正確にディスプレイ14の表示倍率を調整することが出来る。
また、予め設定された拡大倍率または縮小倍率となった後、さらにユーザによって拡大または縮小する操作が行われると、現在の表示よりも拡大または縮小出来ないことが通知される。これにより、ユーザは現在の表示を拡大または縮小出来ないことを認識できる。そのため、ユーザが不要な操作を継続することを防止できる。
たとえば、図19を参照して、拡大倍率が第1閾値を超えた場合、通知アイコン82によって、ユーザに上述した状態が通知される。縮小倍率が第2閾値を超えた場合も同様に、現在の表示よりも縮小できない状態が通知される。他の実施例として、上記の通知は、LEDなどの発光、警告音の出力またはこれらの組み合わせなどによって行われてもよい。また、第1閾値または第2閾値は、携帯電話機10の画像処理能力における最大値または最小値、もしくは、ユーザが予め定めた値、もしくは、他の基準に基づいて決められてもよい。
また、第1実施例ないし第3実施例のそれぞれは任意に組み合わせられてもよい。たとえば、第1実施例および第2実施例は組み合わせられると、同心円によって表示が拡大されているときに、外巻きで渦巻きが描かれたとしても、表示は拡大される。また、同心円によって表示が縮小されているときに、内巻きで渦巻きが描かれたとしても、表示は縮小される。
また、第1実施例または第2実施例に第3実施例が組み合わせられると、閾値以上の中心角で円が描かれると、所定の倍率で表示が拡大または縮小され、その後の移動量に基づいて拡大倍率または縮小倍率が算出される。
また、第3実施例では、閾値以上の中心角で円弧が描かれる度に、所定の倍率で拡大または縮小されてもよい。たとえば、閾値が90度のときに360度の円が右回転で描かれると、円弧の中心角が90度、180度、270度、360度となる度に、150%ずつ表示が拡大される。
また、本実施例で用いられたプログラムは、データ配信用のサーバのHDDに記憶され、ネットワークを介して携帯電話機10に配信されてもよい。また、CD,DVD,BD(Blue-Ray Disk)などの光学ディスク、USBメモリおよびメモリカードなどの記憶媒体に複数のプログラムを記憶させた状態で、その記憶媒体が販売または配布されてもよい。そして、上記したサーバや記憶媒体などを通じてダウンロードされた、プログラムが本実施例と同等の構成の携帯端末にインストールされた場合、本実施例と同等の効果が得られる。
そして、本明細書中で挙げた、具体的な数値は、いずれも単なる一例であり、製品の仕様変更などに応じて適宜変更可能である。