実機端末の画面キャプチャ
を参考に
実機画面キャプチャを行って見ました
まず最初に Nexus7 や HTC J などの端末を
USB接続します
このときにUSBデバッグできるようになっているのが条件になります
Eclipse のDDMSを開いて
screen capturer をクリックすると
実機画面がでるので
あとは
save を押せば保存されます
Just another WordPress site
実機端末の画面キャプチャ
を参考に
実機画面キャプチャを行って見ました
まず最初に Nexus7 や HTC J などの端末を
USB接続します
このときにUSBデバッグできるようになっているのが条件になります
Eclipse のDDMSを開いて
screen capturer をクリックすると
実機画面がでるので
あとは
save を押せば保存されます
android の音量設定
音量を設定するには
android.media.AudioManager クラスの
setStreamVolum() を使う
音量を設定する前に、まず設定可能な値の範囲を
getStreamMaxVolum() で調べる
これは設定できる最大の値が
ストリームタイプにより異なるため
ストリームタイプは
STREAM_RING
着信音
STEAM_NOTIFICATION
通知音
STEAM_ALARM
アラーム音
STEAM_MUSIC
音楽
STEAM_SYSTEM
システム音
STEAM_VOICE_CALL
ボイス音
USE_DEFAULT_STREAM_TYPE
システムが使うデフォルト音
STEAM_DTMF
DTMF音
とりあえずテストで作成
プロジェクト名は
Volcontrol
Android 4.0.3 を対象に作成
実機検証で行うのはエミュレータが遅いため
実行には Nexus 7 と HTC J
まずレイアウトファイルをつくる
res/layout の上で
右クリック > new > other
で
Android XML Layout File
を指定
RootElement には
LinearLayout を指定
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="音量設定テスト"/> <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
を追加
次に MainActivity の変更
ActionBarActivity
を
Activity にして
Ctrl + shift + o でインポートを補完
if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()).commit(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); return rootView; } }
はいらないので削除
あとは onCreate() の中に書いていく
まずtextView インスタンスを取得
TextView text =(TextView)findViewById(R.id.text);
次にAudioManager インスタンス取得
AudioManager manager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
そして変数に表示する内容を格納
String.format() で
第1引数には表示する文
第2引数にはその内容を記述
String volInfo = String.format("STREAM_ALARM: %d/%d\n" +"STREAM_MUSIC: %d/%d\n" +"STREAM_NOTIFICATION: %d/%d\n" +"STREAM_RING: %d/%d\n" +"STREAM_SYSTEM: %d/%d\n" +"STREAM_VOLUM_CALL: %d/%d\n", //各ストリームタイプごとの音量の現在値と最大値を得る manager.getStreamVolume(AudioManager.STREAM_ALARM), manager.getStreamMaxVolume(AudioManager.STREAM_ALARM), manager.getStreamVolume(AudioManager.STREAM_MUSIC), manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), manager.getStreamVolume(AudioManager.STREAM_NOTIFICATION), manager.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION), manager.getStreamVolume(AudioManager.STREAM_RING), manager.getStreamMaxVolume(AudioManager.STREAM_RING), manager.getStreamVolume(AudioManager.STREAM_SYSTEM), manager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM), manager.getStreamVolume(AudioManager.STREAM_VOICE_CALL), manager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL) );
そして、得られた情報を textview へ表示
text.setText(volInfo);
メディア再生音量の最大値を得るために
int maxVol = manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
;
これは最大音量の半分にする計算に使う
media 再生音量を最大の半分にする
manager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVol/2, AudioManager.FLAG_SHOW_UI);
AudioManager.FLAG_SHOW_UI
は
音量の調整をする
PhoneGapのイベント
PhoneGapでは、戻るボタンやメニューボタンの操作
オンライン、オフライン
サスペンド
レジュームなどの端末の状態の切り替えのタイミングで様々なイベントが利用できる
イベント処理は、以下のように記述する
$(document).on("backbutton",function(e){ //戻る処理 });
PhoneGapで利用できるイベントは
backbutton
戻るボタンが押されたら実行
menubutton
メニューボタンが押されたら実行
searchbutton
検索ボタンが押されたら実行
online
ネットワークへ接続したら実行
offline
ネットワークが切断されたら実行
pause
他のアプリに切り替わったり、スリープしたら実行
resume
アプリを復帰したら実行
batterycritical
バッテリーがなくなりそうになったら実行
現場のプロが教えるWeb制作の最新常識 知らないと困るWebデザインの新ルール
を購入してみました
元々の購入のきっかけは最近のトレンドを知ること
そして学習するものを絞るため
ドットインストールである程度の基礎を学習することができるので
これで学習してから書籍を購入したり
サイトをみたほうが効率的
ただし、どれを重点をおいてやるかによって学習する効率も変わる
フレームワークを使えば効率は上がるけど
そもそもその元の言語が分かっていないとせっかくのフレームワークも
使いこなせないし、フレームワークに固定されるのは結構リスクが高い
当面、使いそうなものとしては
HTML
CSS
java script
jquery-mobile
レスポンシブweb サイト
compass
git
今回は、去年購入した kindle fire で購入
kindle で購入したものは
アプリを使うことで
Android でも ipod touch でも閲覧可能
電車での移動のときにも読めるし
お昼の休憩の合間にも見ることができるし
なによりかさばらないので
自宅でみるなら kindle や タブレット
出先でみるのなら kindle アプリとすれば
効率よく学習することができます
AndroidでPhoneGap
まずは、EclipseへADTプラグインをいれ
Android開発ができるようにする
次に、PhoneGapプラグインをインストール
https://svn.codespot.com/a/eclipselabs.org/mobile-web-development-with-phonegap/trunk/download/
からインストール
そして、
ツールバーのPhoneGapのアイコンをクリックして
ウィザードに従いPhoneGapプロジェクト作成
作成されたプロジェクトのAndroidmanifestにエラーがでたら
android:xlargeScreens=”true”
を削除する
あとは、
assets/www/
へ
HTML
css
Javascriptで
Webアプリを作成する
PhoneGapのAPI
Accelerometer
加速度センサーの値を取得
Capture
画像、ビデオ、音声などの取得、録音
Compass
方角の取得
Contacts
OS標準の電話帳、連絡帳の操作
File
端末のファイルの読み書き
FileTransfer
ネットワークを利用したファイルの取得、送信
GeoLocation
位置情報取得
Notification
バイブやビープ音、警告、確認メッセージなど
ユーザへの通知関連
Event
ネットワーク、スリーブなどの状態取得
戻るボタンなどのイベント取得
http://www.winlearning.jp/course/phonegap/phonegap.php
も参考にするとわかりやすい
phone gapについて
Phone gapの情報を探すときには
PhoneGap
Apache callback
Apache Cordova
などのキーワードで検索
PhoneGapの特徴としては
HTML5+Javascriptでネイティブアプリが作れること
App Store Google Play App hubに登録てきるアプリを作れる
あと、ある程度ならデバイス操作も可能
加速度センサー
コンパス
カメラ
電話帳なども使える
デバイス操作関連のAPIは
PhoneGapAPIというJavascriptAPIが使えるので
これを使えば、各プラットフォームで動作するアプリを作れる
PhoneGapは、jQueryMobileと
相互補完関係にあるので
jQueryMobileでUIを作成して
処理は PhoneGapで行うようになる
PhoneGapは、ver1.41以前と
ver1.5以降ではパッケージ名やクラス名が変わっているので注意
markdown で段落改行水平線
p
br
で表現されるパラグラフとか改行について
パラグラフは簡単で
適当な文章を空行をいれて表現すればパラグラフになる
これをReText でみるには
編集 > HTML コードを表示
とすれば
別のウインドウでHTMLコードが表示される
これなら、わざわざブラウザ立ち上げして
developer tools で確認しなくてもいい
そして続き
改行をいれないとひとまとめて p 要素扱いになる
変更した場合には再度おなじ手順で表示しないと
ダメで
HTMLコード確認まではリアルタイムでないのは
残念
なお markdown で改行を入れるには
文章の後ろにスペースを2つ以上入れること
次に hr を markdown でかく方法
これは
– * _ のどれかを3つ以上書けばいい
連続じゃなくて
• – – と離して書いても適用される
ubuntu で markdown
ドットインストールの環境がMac で
私の環境が Ubuntu
ということで
まずは
http://ubuntuapps.blog67.fc2.com/blog-entry-247.html
を参考に
ReText をインストール
ReText の場合
リアルタイムで表示できる Live peview 機能があるので
これを使うため
メニューから
編集 > ライブプレビュー
で画面が分割されリアルタイム表示できるようになる
まずは実験で
#02 見出しを書いてみよう
を実践
試しに 左側の画面に
#Title1
とすると
右側の画面で
h1 要素で Title1 と表示される
##title2
だと
h2 で title2 になる
h3 から h6 までは # の数をその分増やすことで対処できる
h1 は別の書き方があり
title
=====
というように文字の下へ = を1つ以上書けば
それで h1 とみなす
h2 も別の書き方があり
title
—–
というように今度は – を1つ以上書けば
それが h2 とみなす
とりあえず h1から h3 まで試したけど
問題なくリアルタイムで変更をみることができたので
これを使って
MarkDown を実践する
コードの記述には emmet-vim のほうが使い慣れているので
まだこっちを使う予定
jekyll のページの一部を部品化
wp 見たいにページの一部を部品化することができる
例えばレイアウトの中にフッターメニューを入れる
これにはHome へのリンク
About へのリンクを
default.html
の
{{content}}
の下に追加する
<hr><p><a href="/">Home</a> | <a href="/about.html"></a></p>
とする
ちなみに hr タグは横に罫線を引くタグ
http://www.htmq.com/html/hr.shtml
の解説を参考に
これでリンクと罫線がでる
このフッターメニューを default.html 以外のレイアウトで使うのなら
フッターメニューを部品化しておく
これで共通化して管理できる
これをやるには
部品を入れる特殊フォルダを作成する
名前は
_includes
そしてこの中に部品ファイルを作成する
今回はフッターメニューなので
footer_menu.html
とした
default.html のほうから
<hr><p><a href="/">Home</a> | <a href="/about.html"></a></p>
を切り取り
ここへ貼り付ける
そして
子の部品を呼び出すには
{% %}で囲む
これは ruby の記法なので覚えておく
つまり作成したファイルを呼び出すのなら
<% _include footer_menu.html %}
となる
書くときのファイルパスに注意すること