概要
AndroidアプリでMaterialShowcaseViewというライブラリを使ってチュートリアルを実装したときのメモ
以下に示す参考記事に記載されていることは書かない。
実際にソースコードを読んで、動作確認したものを示す。
随時更新予定
このライブラリを選んだ理由
競合ライブラリと比較して、以下の理由からこのライブラリを選んだ。
- GitHubスター数が多い
- 継続的にメンテナンスされている
- 検証段階でもスムーズに実装できた
GitHub
参考記事
- MaterialShowcaseViewでAndroidアプリのチュートリアルを実装する - Qiita
- 【Android】こういうのが欲しかったMaterialShowcaseViewを使ってみた! – 読書大好きプログラマーの記録
.setShape()
ハイライトの形状を指定する。こちらのメソッドはオプショナルとなっており、デフォルトでは円形となっている。
円形
.setShape(CircleShape())
※デフォルト値
楕円形
.setShape(OvalShape())
四角形
.setShape(RectangleShape(Rect()))
ハイライトなし
.setShape(NoShape())
.setDismissStyle()
オーバーレイのスタイルを指定する。
Typefaceクラスのインスタンスを引数として受け取る。
Typefaceクラスをインスタンス生成する際、以下のように.createでインスタンス生成する。
Typeface.create("sans-serif-condensed", Typeface.NORMAL)
第一引数にフォントファミリーネームをString型で渡し、第二引数にスタイルを定数で渡す。
フォント指定(第一引数)
.setDismissStyle(Typeface.create("sans-serif-condensed", Typeface.NORMAL))
※sans-serif-condensed を指定した例
スタイル指定(第二引数)
.setDismissStyle(Typeface.create("sans-serif-condensed", Typeface.NORMAL))
.setDismissStyle(Typeface.create("sans-serif-condensed", Typeface.BOLD))
.setDismissStyle(Typeface.create("sans-serif-condensed", Typeface.ITALIC))
.setDismissStyle(Typeface.create("sans-serif-condensed", Typeface.BOLD_ITALIC))
.setDismissStyle(Typeface.create("sans-serif-condensed", Typeface.STYLE_MASK))
BOLDなど指定できる。
.setDismissOnTouch()
オーバーレイがタップされた際にオーバーレイを消すか指定する。
消す
.setDismissOnTouch(true)
消さない
.setDismissOnTouch(false)
※デフォルト値
.setTargetTouchable()
オーバーレイが表示されている状態でハイライトされている部分をタップできるか指定する。
タップできる
.setTargetTouchable(true)
タップできない
.setTargetTouchable(false)
※デフォルト値
.useFadeAnimation()
オーバーレイが消えるときフェードアウトのアニメーションを行うか指定する。
.useFadeAnimation()
フェードアウトのアニメーションを行う。
所感
簡単なチュートリアルであれば、こちらのライブラリでサクッと1日とかで実装できて楽ちん。
ドキュメントが少ないので、設定を変更する際はコードを読む必要があるものの、そこまで複雑ではない。
今回は私は拡張していないが、拡張するにしても継承したClassを作ってメソッドを追加するなり上書きするなりしてそこまで大変じゃなさそう。
ライブラリの依存関係もシンプル&実装もシンプルなので、導入してからのリバートも容易。