jQueryまとめ

jQueryまとめ
jQueryプラグインで機能拡張できる
例えば、
画像のズームアップする
Zoomboxプラグインとか
コードとレイアウトを分離できる
jQueryTemplates
とか
jQueryUIは
なまえの通り、UI特化のプラグイン
ドラッグ&ドロップ、ソートみたいな汎用的機能
日付入力ボックスから、アコーディオンボックスなどなど
UI部品やアニメーション機能が使えるようになる
jQueryUIは
$(セレクー).機能名(パラメータ,….)
で呼び出す
パラメータは
{名前: 値, ….}
というハッシュ形式で指定する
$.fn.extend()を使って
自作jQueryプラグイン作成が可能
プラグインは
jQueryオブジェクトをreturnで返す
ように設計すること

自作jQueryプラグイン作成

自作jQueryプラグイン作成
自作プラグイン作成の場合、以下のような基本的骨格になる
(function($){
$.fn.extend({
メソッド名:function(){
プラグインコード
}
});
})(jQuery);
では解説
(function($){….})(jQuery)

プラグインを
$(セレクタ).メソッド(….)
jQuery(セレクタ).メソッド(….)
のどちらでも呼び出せるようにするために
記述している
これは、環境によっては毎度おなじみの
$()が無効化されていて、
jQuery()しか使えないときの対策
こういう対策は
自分の環境ではあまり気にしないけど
製品によっては
こういう環境もあるため、あとで
対処しなくていいように
あらかじめ対策する癖をつけたほうがいい
$.fn.extend()
はjQueryプラグインの定義している部分
$.fn.extend()の構文は
$.fn.extend({
メソッド名: function(){
プラグインのコード
},
….
})
ちなみに、
$.fn.extend()は
jQueryに新しいメソッドを追加するためのメソッド
プラグインは、要は
jQueryの拡張メソッドのこと
function(){….)の中に
メソッドが呼び出されたときの具体的な処理を記述する
もし、複数のメソッドを追加したいなら
メソッド名: function(){….)
の組み合わせを
,
で区切ってハッシュみたいに書けばいい

HTC Jのデフォルト動作解除

HTC J ISW13HTをアップデートしたら
インターネットを開く設定が
プリインストールされている
ブラウザで動くように設定が変わりました
さすがに、このままでは
動作が遅いため、デフォルト設定を
解除しました
これで、Gmailからのリンクを
Chromeから開けるようになりました
設定変更は
設定を開き
アプリケーション > すべて >検索
でブラウザを入力すればでます
キャッシュを消去
の下に
デフォルトをクリア
があるので、これを押せば
ブラウザのみという状態が解除されます

マーカー設定

マーカー設定
地図上にマーカーの表示をするには
オーバーレイという、レイヤークラスを作成し
そのインスタンスをMapViewの上に設定する
オーバーレイクラスは
com.google.android.mapsパッケージの
ItemizedOverlayクラスを継承して定義する
コンストラクタの引数に、
マーカーに使用する画像が
Drawableクラスのインスタンスとして引き渡されるので
その画像情報を設定し
マーカーの付属情報、
例えばお店の情報とか、目標物の情報とか
を格納するリスを作成
そして、
トースト表示やダイアログ表示を行うため
コンテキスト情報を設定し
populate()
で、マーカーの数が変更されたことを通知する
このマーカー設定は
地図アプリで多々使う
用途を限定した地図アプリとか、
位置情報関連アプリでも使える

Androidの位置情報取得

位置情報取得
Androidは人工衛星を使い、位置情報取得するGPS
Global Positioning System
以外に
無線LANのAP
基地局からの情報を特定する仕組みを持つ
ますは、GPSを使った位置情報取得について
これを行うには
AndroidManifest.xml
にGPS機能にアクセスする権限を追加する
このパーミッション追加には
uses-permissionタグを使う
android.permission.ACCESS_FINE_LOCATION

GPS機能へアクセスする権限
GPSではなく、Wi-Fiや3Gなどのように
無線LANのAPや基地局からの情報を使い
位置情報の解析をするなら
android.permission.ACCESS_COARSE_LOCATION
を使う
実機ではなく、エミュレータで開発するなら
テスト用GPS機能になるので
android.permission.ACCESS_MOCK_LOCATION
を使う
これで
Androidのパーミッションの設定はしたので、次は位置情報の取得
位置情報の取得には
android.locationパッケージのAPIを使う
android.locationパッケージの中にある
LocationManagerクラスで
Androidの位置情報サービスへアクセスし
LocationListenerインターフェースで
現在の緯度経度の取得をする

Android地図表示処理

地図表示処理
Androidで、地図表示のための主なAPIは
com.android.google.mapsパッケージにある
以下の2つが、GoogleMapsを使うとき使用する主なクラス
MapViewクラス
GoogleMapsを表示するビュークラス
MapActivityクラス
GoogleMapsを制御するアクティビティクラス
また、AndroidManifest.xmlに
使用する地図関連ライブラリを設定するため
users-libraryタグへ
android:name=”com.google.android.maps”
を記述
そして、パーミッションへ
インターネットアクセス権限になる
INTERNET
を設定する
アクティビティは
地図を扱う
MapActivityを継承して使う
MapActivityクラスの
isRouteDisplayed()
をオーバーライドして実装し
戻り値をtrueにすると
ルート情報
表示する
falseならルート情報表示なし
isRouteDisplayed()は
ルート情報を表示するか否か
設定するメソッド
ソースにすると
@Override
protected boolean isRouteDisplayed(){
return false;
}

MediaRecorder.AudioSourceの定数

MediaRecorder.AudioSourceのデータソース定数
CAMCORDER
カメラデバイス
DEFAULT
デフォルト値
これは機種依存になる
VOICE_CALL
受話、送話の両方
VOICE_COMMUNICATION
IP電話のような技術を利用した音声
Skypeとかlineはこれになるかも
VOICE_DOWNLINK
受話のみ
VOICE_RECOGNITION
音声認識
使えないときにはDEFAULT
VOICE_UPLINK
送話のみ

AudioManagerの定数

AudioManagerの定数
STREAM_ALARM
アラーム音量
STREAM_DTMF
ボタンのプッシュ音量
ボタンを押したときに鳴る音
STREAM_NOTIFICATION
通知音量
メールのお知らせとかで鳴る音
STREAM_RING
着信音量
STREAM_SYSTEM
システム音量
STREAM_VOICE_CALL
通話音量
また、音量調節はプログラムでもできる
これには
android.mediaパッケージの
AudioManagerを使う
ソースにすると
//AudioManagerインスタンス取得
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
//メディア音量の設定値取得
int volume=am.getSystemVolume(AudioManager.STREAM_MUSIC);
//メディア音量の最大値取得
int maxVolume=am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//メディア音量設定
am.setStreamVolume(AudioManager.STREAM_MUSIC,(int)(maxVolume/2),0);
ソース解説すると
まず、getSystemService()へ
Contextの定数の
AUDIO_SERVICE
を指定し、AudioManagerのインスタンスを取得
設定されている音量取得には
getStreamVolume()
を使う
メディア音量取得なら
引数に、AudioManagerの定数の
STREAM_MUSICを指定
音量の最大値取得には
setStreamMaxVolume()
を使い、引数に、メディア音量の定数を設定
音量設定には
setStreamVolume()
を使い、引数には
メディア音量の定数
設定する音量
プラグ
を設定
あとは、画面にシークバーなどを設定し
音量のコントロールができるように実装する

zoombox機能の適用

Zoombox機能の適用
Zoomboxプラグインの機能を適用するには
以下のように記述する
zoombox()は
Zoomboxプラグインにより jQueryに追加されたメソッド
これで、zoomboxクラスに属するa要素に
ズームアップ機能が適用される
ソースは単純で
$(‘a.zoombox’).zoombox();
このように、プラグインを利用するときには
プラグインに必要なjava script CSSを読み込む
プラグインのメソッドを呼び出す
という簡単な流れで実装ができる

基本なタッチイベントについて

基本的なタッチイベント
基本的なタッチイベントの取得、検知には
android.viewパッケージの
Viewクラスの
OnTouchListenerインターフェース
を使う
OnTouchListenerを実装したリスナーを
ビューに適用すると
そのビューのタッチイベントを取得できる
タッチイベントのハンドラとして
OnTouchListenerインターフェースには
onTouch()
が用意されている
onTouch()の
第1引数に、タッチされたビューオブジェクト
第2引数に、イベント情報を持つ MotionEvent
が引き渡される
このMotionEventには
タッチされた座標
タッチイベントの種類
などの情報が含まれている
MotionEventの
getActionMasking()

タッチイベントの種類を数値で取得できる
取得した数値は
MotionEventのイベント種別用定数により
どのようなタッチイベントが発生したか
判定できる
これを使えば、switchによる
条件分岐もできる
MotionEventの定数の代表的なものとして
ACTION_MOVE
ドラッグしたときのイベント判定
ACTION_CANCEL
タッチイベントをキャンセルしたときの
イベント判定
ACTION_OUTSIDE
タッチイベント対象以外をタッチしたときのイベント判定
getActionMasked()は
タッチイベントの種類を数値で取得したけど
これ以外にも
MotionEventのメソッドは存在する
以下はその一部
getX()
タッチされたX座標
getY()
タッチされたY座標
getDownTime()
タッチされていたミリ秒単位の時間
getEdgeFlags()
対象のビューの端をタッチしたかを判定
getPressure()
タッチされた圧力
getSize()
タッチされている範囲
画面のタッチイベントの取得は
Activityの
onTouchEvent()

override
することでも取得できる
ソースにすると
public boolean onTouchEvent(MotionEvent event){
onTouchEvent()の引数には
MotionEventが渡されるので
タッチイベントの種類、座標などが同様に取得できる
実は
onTouchEvent()は
Viewクラスにも定義されているので
Viewクラスを継承したビュークラスで
overrideして
そのビューのタッチイベントを取得するこもできる
public class TouchScreen extends View{
public boolean onTouchEvent(MotionEvent event){