HTTP通信処理
Androidアプリから
Webサーバーに接続するには
HTTP通信を使う
HTTP通信でのデータのやりとりは
GET
POST
の2種類があり
GETなら、サーバーにリクエストするときに
http://xxx.co.jp/yyy?id=hoge
というように、
URLのあとに
?
と
id=hoge
を付けた
クエストリングと呼ばれる形式で送信する
POSTの場合、
GETのように、URLの一部ではなく
本文として送信される
GETは
名前の通り、検索キーワードを送信して
検索結果を取り出すような処理のために使う
POSTは
メッセージ書き込みとかデータ更新に使う
GETとPOSTは
PHPでよく使うので、機会があれば
こちらの言語も勉強すると
より理解が深まります
スポンサーサイト
Javascriptの命令文の一部
JavascriptでもPHPでも、ソースコードを読むためには
意味が分からないとと書けないので
解説メモです
まずDOM関連
getElementById()
特定のIDの要素を抽出する
querySelectorAll()
セレクタにマッチする要素を抽出する
getAttribute()
要素の属性を読み込む
appendChild()
小ノードとして追加
innerHTML
HTMLを出力
innerText,textContent
テキストのまま出力
続いて、イベント関連
addEventListener()
イベントリスナー追加
preventDefault()
ブラウザの標準動作を禁止
続いて、CSS関連
opacity
不透明度
backgroundColor
背景色
position
位置の指定方法
width
横幅
height
縦幅
left
左の座標
top
上の座標
Androidのitemタグの属性
android:color
色の設定
android:state_focused
フォーカスが当たっている状態はtru
当たっていない状態ならfalse
を設定
android:state_selected
選択されている状態はtrue
選択されていないならfalse
を設定
android:state_checkable
チェックできる状態はtrue
チェックできない状態はfalse
を設定
android:state_checked
チェックされている状態はtrue
チェックされていない状態はfalse
を設定
android:state_enableed
有効のときはtrue
無効のときはfalse
を設定
android:state_window_focused画面にフォーカスが当たっている状態はtrue
フォーカスがあたってない状態はfalse
HTML5での要素の変更点
b要素
商品名などのキーワード
em
強調
strong
重要
i
車や船の名前
ruby
漢字とかのふりがなをふる
time
日付、時間を示す
mark
特定のテキストをハイライト表示する
指定下時間にアプリ起動処理
Androidでは、
常駐プロセスのように、常にバックグラウンドで処理を動かすには
サービスを使う
指定した時間にアプリ起動するなら
AlarmManager
をつかう
AlarmManagerなら
端末がスリープ状態でも
指定した時間になればアプリ起動することができる
また、起動の間隔を設定すれば
毎日決まった時間にアプリ起動ができる
指定した時間でアプリ起動する流れは以下のとおり
まず、起動するアプリを指定した
PendingInternt
のインスタンス、起動時間や間隔を
AlarmManagerに設定
これで、指定した時間になると
設定したアプリが起動
停止したいときには
AlarmManagerのcancel()で起動設定解除
する
HTML5では
以前はdivタグでやっていた画面分割を
新しく定義された要素で分割が可能
articleタグで
画面の左側
sectionタグで
画面中央
asideタグで
画面の右側
ちなみに、画面の中央には
ブログ記事とかを書いたりするので
section要素でマークアップしている
このセクションという仕組みは
HTML5から追加されたもので
セクションを本に例えると
本の章とか節みたいになる
ちなみに、sectionの中に
さらに複数のsectionがあっても問題ない
セクション内では
HTMLでおなじみの見出しをつける
h1~h6タグが使える
本文と関係のある補足的なコンテンツ
例えば、ブログ記事の関連リンクとか
自作アプリとか、開発したもののバナーとか
そういうのは
article要素じゃなくて
右側に表示できる
aside要素のところに書く
あとは、最後にフッターをマークアップ
フッターには
コピーライトとか
よく一番下に書いてあるのを書くところ
ヘッダー
コンテンツ
フッター
の組合せは
jQuery mobileでも使うので
覚えておくと便利
ちなみに、
ヘッダーは見出し
コンテンツは記事本文
フッターは下にかくもの
と考えるとわかりやすい
スマホ向けサイトをみると
わかりやすい
HTML5で画面を横に3分割
HTML5では
以前はdivタグでやっていた画面分割を
新しく定義された要素で分割が可能
articleタグで
画面の左側
sectionタグで
画面中央
asideタグで
画面の右側
これを一番使うのは、ブログみたいな使い方
例えば、
articleにはブログ記事の見出し
sectionには
ブログ記事本文
asideには
広告とか、アフィリエイトのリンクを貼る
というかんじ
HTML5 とそれ以前の見分け方
ソースをみて、HTML5かどうかを見分けるには
<!DOCTYPE html>
となっているかをみる
書いてあるのは、だいたい先頭の部分
<!DOCTYPE HTML public....>
というように、長いなら
HTML5ではない
違いは、使える機能が大幅に変わること
単純そうだけど、かなり重要
HTML5のAPI
Canvas
ピクセル単位でのグラフィック描画に使う
ただし、Javascriptがないと機能しない
SVG
こっちもグラフィック描画
でも、単体でも使えるところが違う
Web Workers
複数のプログラムを並列処理する
ちなみに、Javascriptは1つしかできない
Web Storage
Javascriptでデータを保存する
大容量データの保存、読み出しも可能
Geolocation API
位置情報の取得
ただし、座標取得だけなので
実用化するときには
マップ関連のAPIと組み合わせることが多い
Video & Audio
映像や音楽の取り扱い
スクリプトで制御することもできる
File API
ローカルファイルを扱うための機能
ただし、
セキュリティ関連の縛りで
アクセスできるのは
ユーザが選択したものだけになる
Drag&Drop API
表示されている画像や文字のドラッグ&ドロップ
Web Socket
直接サーバーとやりとりする機能
ソケット通信
主な用途は、ゲームやチャット
Indexed Database
ローカル側でデータベース使用
Key Value Store
からなるKVS方式で、処理を行う
HTML5 Web Messaging
Web Messagingは
異なるドメイン同士での通信を行う
これで、インラインフレーム内に
表示されているページの
スクリプトのやりとりができる
ちなみに、Javascript単体では、
異なるドメインへの通信はできなかった
windows XPで、自炊のため購入した
ScanSnap S1500
これを、ubuntuでも使えないか実験しました
結論から書いてしまうと、使えるけど
実用的ではなかったです
sudo apt-get install xsane
sudo apt-get install imagemagic
で
必要なパッケージをインストールし
両面読み取りにしましたが
pdfファイルの両面読み取りでは
速度が落ちてしまいます
別のマシンで、仮想化したWindows XPで
使ったところ、明らかな差がでてしまいました
JPEGなど、別のファイルで保存すれば
速度はあがるかもしれません
なお、連続読み込みしたときには
各ページごとのファイルになります
つまり、5ページなら
pdfファイルが5つできるため、
新しくフォルダを作成し
その中で処理するようにしました
最終的には、
convertコマンドで2つのファイルにまとめられますが
手間を考えると
仮想化したWindowsが一番速いと思います
今回は
HTML5の書籍で、ページが360Pあるため
仮想マシンで処理しました
jQueryまとめ
jQueryプラグインで機能拡張できる
例えば、
画像のズームアップする
Zoomboxプラグインとか
コードとレイアウトを分離できる
jQueryTemplates
とか
jQueryUIは
なまえの通り、UI特化のプラグイン
ドラッグ&ドロップ、ソートみたいな汎用的機能
日付入力ボックスから、アコーディオンボックスなどなど
UI部品やアニメーション機能が使えるようになる
jQueryUIは
$(セレクー).機能名(パラメータ,....)
で呼び出す
パラメータは
{名前: 値, ....}
というハッシュ形式で指定する
$.fn.extend()を使って
自作jQueryプラグイン作成が可能
プラグインは
jQueryオブジェクトをreturnで返す
ように設計すること
自作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 ISW13HTをアップデートしたら
インターネットを開く設定が
プリインストールされている
ブラウザで動くように設定が変わりました
さすがに、このままでは
動作が遅いため、デフォルト設定を
解除しました
これで、Gmailからのリンクを
Chromeから開けるようになりました
設定変更は
設定を開き
アプリケーション > すべて >検索
でブラウザを入力すればでます
キャッシュを消去
の下に
デフォルトをクリア
があるので、これを押せば
ブラウザのみという状態が解除されます
マーカー設定
地図上にマーカーの表示をするには
オーバーレイという、レイヤークラスを作成し
そのインスタンスをMapViewの上に設定する
オーバーレイクラスは
com.google.android.mapsパッケージの
ItemizedOverlayクラスを継承して定義する
コンストラクタの引数に、
マーカーに使用する画像が
Drawableクラスのインスタンスとして引き渡されるので
その画像情報を設定し
マーカーの付属情報、
例えばお店の情報とか、目標物の情報とか
を格納するリスを作成
そして、
トースト表示やダイアログ表示を行うため
コンテキスト情報を設定し
populate()
で、マーカーの数が変更されたことを通知する
このマーカー設定は
地図アプリで多々使う
用途を限定した地図アプリとか、
位置情報関連アプリでも使える
位置情報取得
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で、地図表示のための主な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のデータソース定数
CAMCORDER
カメラデバイス
DEFAULT
デフォルト値
これは機種依存になる
VOICE_CALL
受話、送話の両方
VOICE_COMMUNICATION
IP電話のような技術を利用した音声
Skypeとかlineはこれになるかも
VOICE_DOWNLINK
受話のみ
VOICE_RECOGNITION
音声認識
使えないときにはDEFAULT
VOICE_UPLINK
送話のみ
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プラグインにより 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){
Zoomboxプラグイン
サムネイル画像をクリックすると
そのページ内で動画がズームアップされて表示されるようにできる
あと、ゲームのサンプルCGとかも
これが使われるようだ
これを実装するには
jQueryUIのプラグインのひとつ
Zoomboxプラグインを使うことでできる
必要なプラグインをダウンロードして解凍
その中にあるので、必要なファイルが
zoombox.js
Zoomboxプラグインの本体
zoombox.css
Zoomboxプラグインのスタイルシート
img
Zoombox分で使える画像
あとは、これらを
scriptタグや linkタグでファイルのパスを指定すれば適用できる
タッチイベントについて
タッチイベントは、大きく分けて2つ
基本的なタッチイベント
複雑なタッチイベント
基本的なタッチイベントは
スクリーンのタッチ
スクリーンから指をはなす
スクリーン上でドラッグとか、
単純な操作のこと
複雑なタッチイベントは
長押し
フリック
ダブルタップ
など、複雑にした操作
アニメーションタグで指定可能な属性
rotateタグの属性
android:fromDegree
アニメーション開始時の画像の角度設定
android:toDegree
アニメーション終了時の画像の角度設定
android:pivotX
回転の中心となるX座標の設定
android:pivotY
回転の中心となるY座標の設定
続いて、translateタグの属性
android:fromXDelta
アニメーション開始時のX座標の設定
android:fromYDelta
アニメーション開始時のY座標の設定
android:toXDelta
アニメーション終了時のX座標の設定
android:toYDelta
アニメーション終了時のY座標の設定
fromで開始時、toで終了時と覚えると楽
次に、scaleタグ
android:fromXScale
アニメーション開始時の水平方向の要素を設定
android:fromYScale
アニメーション開始時の垂直方向の要素を設定
android:toXScale
アニメーション終了時の水平方向の要素を設定
android:toYScale
アニメーション終了時の垂直方向の要素を設定
android:pivotX
スケール変更の中心となるX座標を設定
android:pivotY
スケール変更の中心となるY座標を設定
これも
fromで開始時、toで終了時
そして
Xは水平、Yは垂直と覚えると楽
最後に、alpha属性
android:fromAlpha
アニメーション開始時の透過度を
0.0~1.0で設定
ちなみに、1.0は無透過になる
android:toAlpha
アニメーション終了時の透過度を
0.0~1.0で設定
ちなみに、alphaは透過度という意味
InterpolatorサブクラスとリソースID
AccelerateDecelerateInterpolator
リソースは
@android:anim/accelerate_decelerate_interpolator
開始は遅く、その後加速し
終了に向けて減速
AccelerateInterpolator
リソースは
@android:anim/accelerate_interpolator
開始は遅く、その後加速
加速割合は
android:factor属性で設定
デフォルトは1
AnticipateInterpolator
リソースは
@android:anim/anticipate_interpolator
開始位置から目的位置とは逆方向に
一度移動してから目的位置に移動
逆方向に移動する割合は
android:tension属性で設定
デフォルトは2
AnticipateOvershootInterpolator
リソースは
@android:anim/anticipate_overshoot_interpolator
開始位置から目的位置とは逆方向に移動してそのまま通り過ぎてから
目的位置に移動
通り過ぎる割合は
android:tensionで設定
デフォルトは2
android:tension属性の倍の割合を
android:extratension属性で設定
デフォルトは1.5
BounceInterpolator
リソースは
@android:anim/bounce_interpolator
最後にバウンド
CycleInterpolator
リソースは
@android:anim/cycle_interpolator
指定した回数繰り返す
繰り返しの回数は
android:cycle属性で設定
デフォルトは1
DecelerateInterpolator
リソースは
@android:anim/decelerate_interpolator
最初は速く、その後減速
減速の割合を
android:factor属性で設定
デフォルトは1
LinearInterpolator
リソースは
@android:anim/linear_interpolator
変化の割合は一定
OvershootInterpolator
リソースは
@android:anim/overshoot_interpolator
開始位置から目的位置まで移動し
そのまま通り過ぎてから
目的位置に移動
通り過ぎる割合を
android:tension属性で設定
デフォルトは2
アニメーションタグの共通属性
android:interpolator
アニメーションの加速と減速を設定
android:duration
アニメーションの動作時間
単位はミリ秒
android:fillAfter
trueなら
アニメーション終了後の状態を維持
android:fillBefore
trueなら
アニメーション終了後に開始時の状態を維持
android:fillEnabled
trueなら
fillAfter属性を有効にする
android:repeatCount
アニメーションの繰り返す回数
android:repeatMode
アニメーションの繰り返す動作
restartで初めから繰り返す
reverseは終わりから繰り返す
android:startOffset
アニメーション開始までの待ち時間
単位はミリ秒
android:zAdjustment
アニメーション実行中の
コンテンツのZ軸方向の設定
この中で
android:interpolator属性は
アニメーションに
加速、減速、動きの繰り返し、バウンドなどの効果をつける
この属性に設定できるのは
interpolatorのサブクラスを参照する
リソースID
アニメーションXMLで使用するタグ
rotate
回転アニメーション
translate
移動アニメーション
scale
拡大縮小アニメーション
alpha
透過アニメーション
set
複数のアニメーションの組み合わせ
animation-list
画像の切り替えアニメーション
このうち
animation-listタグ以外は
同じような設定、プログラムになる
アニメーションXMLを使用した描画
Androidでは、以下のアニメーションが実現可能
Rotate
画像を回転させる
Translate
画像を移動
Scale
画像の拡大縮小
Alpha
画像の透明度を変える
Animation-list
複数の画像を切り替えて表示
ちなみに、アニメーションXMLではなく
Javaでも実装できるけど
こっちのほうが楽
アニメーションXMLは
プロジェクトの
resフォルダに
animフォルダを作成し
その中に配置する
Canvasクラスのメソッド
Canvasクラスのメソッドを使うことで
点、線、円などの描画ができる
以下は代表的名もの
drawArc()
円弧を描画
drawBitmap()
ビットマップ形式の画像を描画
drawCircle()
円を描画
drawColor()
Canvasの色を指定する
drawLine()
直線を描画
drawOval()
楕円を描画
drawPath()
複数の直線で多角形を描画
drawPicture()
画像を描画
drawPoint()
点を描画
drawPosText()
float型配列posで指定した座標に沿って
テキストを描画
写真に文字を描くようなかんじ
drawRect()
四角形を描画
drawRoundRect()
角の丸い四角形を描画
drawText()
指定した座標(xとy)を基点にテキスト描画
CDのレーベルに文字をいれるようなかんじ
補足事項として
ビュークラスを定義し
レイアウト設定ファイルに直接設定する場合
コンストラクタの引数は2つになる
第1引数は、コンテキスト情報
第2引数は、レイアウト設定ファイルで設定された属性情報
が引き渡される
さらに、ビューのサイズが変更されたときに
ビューのサイズを再度正しく設定するための
onMeasure()も定義する必要がある
Canvasクラスのメソッド
Canvasクラスのメソッドを使うことで
点、線、円などの描画ができる
以下は代表的名もの
drawArc()
円弧を描画
drawBitmap()
ビットマップ形式の画像を描画
drawCircle()
円を描画
drawColor()
Canvasの色を指定する
drawLine()
直線を描画
drawOval()
楕円を描画
drawPath()
複数の直線で多角形を描画
drawPicture()
画像を描画
drawPoint()
点を描画
drawPosText()
float型配列posで指定した座標に沿って
テキストを描画
写真に文字を描くようなかんじ
drawRect()
四角形を描画
drawRoundRect()
角の丸い四角形を描画
drawText()
指定した座標(xとy)を基点にテキスト描画
CDのレーベルに文字をいれるようなかんじ
補足事項として
ビュークラスを定義し
レイアウト設定ファイルに直接設定する場合
コンストラクタの引数は2つになる
第1引数は、コンテキスト情報
第2引数は、レイアウト設定ファイルで設定された属性情報
が引き渡される
さらに、ビューのサイズが変更されたときに
ビューのサイズを再度正しく設定するための
onMeasure()も定義する必要がある
Paintクラスのメソッド
Paintクラスのメソッドは
筆の太さ、色、塗り方を設定できる
setColor()
筆の色を設定
setARGB()
筆の色をRGBと
アルファ値(透明度)で設定
setAntiAlias()
アンチエイリアスを有効にする
trueを設定すると
輪郭が滑らかに表示されて見やすくなる
setAlpha()
筆の色のアルファ値 (透明度)を設定
setStrokeWidth()
筆の太さを設定
setStyle()
図形の塗り方を設定
引数には
Paint.Style.STROKE
輪郭線のみ
Paint.Style.FILL
塗りつぶし
Paint.Style.FILL_AND_STROKE
塗りつぶして、輪郭線も描く
Canvasクラスを利用した描画
Canvasクラスを直接利用して描画する方法
何かを描画するには
キャンパス
と
筆とかの絵を描く道具
が必要
Androidだと
キャンパスが Canvasクラス
筆がPaintクラス
となる
これらを使えば
画面にタッチして絵を描いたり
手書きメモもできる