Material Design のパレット色を決めるときの簡単な方針づけ

これ便利ですね.

Material Design Color Palette Generator - Material Palette

Material_Design_Color_Palette_Generator_-_Material_Palette

触っていると大体こんな感じ.

1. 最初のクリックは, Primary color.
2. Primary color から Dark/Light を作成.
3. 2つめのクリックは, Accent color.
4. Textの Primary/Secondary は固定.

分かりやすく書くと

DARK PRIMARY

PRIMARY *1

LIGHT PRIMARY

ACCENT *3

PRIMARY TEXT #212121
SECONDARY TEXT #727272
DIVIDER COLOR #B6B6B6

ベースとなる19色はそれぞれ濃淡があり
HEXな記号は, Google のサイトにまとまっている.

Color_-_Style_-_Google_design_guidelines

Color - Style - Google design guidelines

ここを見ると, 濃淡に関してこんな例が上がっているのでそのまま鵜呑み.

Color_-_Style_-_Google_design_guidelines

- PRIMARY は 500.
- それから派生する DARK は 700.
- 同じく LIGHT は 100.
- ACCENT(SECONDARY) は A200.
- その DARK/LIGHT はそれぞれ A400/A100

こうなる.

DARK PRIMARY(700)

PRIMARY(500) *

LIGHT PRIMARY(100)

DARK SECONDARY(A400)

SECONDARY(ACCENT)(A200) *

LIGHT SECONDARY(A100)

PRIMARY TEXT #212121
SECONDARY TEXT #727272
DIVIDER COLOR #B6B6B6

PRIMARY と SECONDARY(ACCENT) の2色を決めると, 画面を構成する9色が決まる.

500 とか A200 とかをHEX記号にするには, 上記Googleのリファレンスをみたり,

または, こんなサイトもある.

Material_UI___Material_Design___Material_UI_Colors

Material UI | Material Design | Material UI Colors

これ, もう全部 color.xml に登録しておいたら, どうなのか.

AndroidStudioなら実際の色もGUI上で確認できるし.

color_xml

こんなアプリがあって, コードもGitHub上で公開していますので color.xml いただいてます.

Material_Design_Color_Palettes_-_Android_Apps_on_Google_Play

Material Design Color Palettes - Android Apps on Google Play

Android_Material_Design_Colours

Android Material Design Colours

MaterialTheme のカラーname に合わせるとこんなかんじになるのかな.

color_xml_Project_

(おしまい)


通知バーに通知されるアプリの自己主張がうざい場合の対処法

なんとなく扱っていたのが

上部通知バーに表示されるアイコンやメッセージの通知.

最近のアプリは通知が頻繁で自己主張が激しいのですこし整理.

いまさらか.

それは「かわいい娘は最近の男は積極的だよねと言い、普通の娘は最近の男は消極的だよねと言い、ブスな娘は最近の男はホント草食系だよねと言っているみたいです。この法則によると男が草食系になってるのではなく、女にブスが増えたのではと思います」という内容だった。

【話題】小木「草食系男子は増えてない。ブスの発言力が増してきただけ」

まず, 通知バーにはそのアプリ側から通知を表示させているので,

「そのアプリの設定で通知を非表示にする」という方法.

例えば, LINEなら「設定」-「通知設定」ですよね.

20150111-231435

20150111-231447

GooglePlayStoreなら「設定」画面を開いて以下の画面から.

20150111-232218

LINEアプリやGooglePlayStoreアプリは,

優しく「通知設定」という機能があるのでいいですが,

そんな機能がないアプリもたくさんあります.

その場合は, 「OSの設定でそのアプリからの通知を非表示」させます.

端末の「設定」-「アプリ」からそのアプリを選択するか,

または, 通知が表示されたときに通知バーのその表示を長押しして

以下のような画面を表示させて端末のOS設定から非表示にします.

20150111-232518

アプリによっては, ここからも非通知にできないアプリがあったりしますが,

大体はいけます.

あと, 通知バーを使ったアプリの履歴一覧を表示する方法もありますので

ここからもタップでこの画面にいけます.

通知バーを利用したアプリの履歴を確認する手順(アプリ不要)

20150111-233322

20150111-233424

微妙に端末よってちがったりするけど, OS 4.1 (4.0?)以降ならこれがOSデフォルト.

まとめ

通知バーの通知がうざいアプリがある場合

1. そのアプリ内の設定で非表示にする.
2. OSの設定で非表示にする.
3. それでもダメならアンインストールする.

しかし, スマホとか「説明書などをきちんと読む」てな習慣, 無くなったよねぇ~.


API-19 と 20+ 間を Material Design でどう跨いでいけばいいのか

Introduction_-_Material_design_-_Google_design_guidelines

とりあえず公式をみてみる.

* テーマの設定

1. Holoのようなこれまでのテーマを継承して定義する
res/values/style.xml

2. 同じ名前でテーマをMaterialテーマを継承して定義する.
res/values-v21/style.xml

3. これらのテーマを AndroidManifest.xmlでアプリに設定する.

* レイアウトの設定

21+向けのディレクトリをそれぞれ準備する
res/layout-v21/
res/values-v21/

API-21+ に対しては, 各リソースファイルを「*-v21」として新規に作成するという考え方.

これまでのUIデザインを変化させずに, 新しく OS 5.0+ の端末に対してのみマテリアルなデザインを表示させる.

その後にこう書いてる.

* サポートライブラリをセット

Theme.AppCompat を使えば いくつかのウィジェットは MaterialDesign のものを使える.

dependencies {
compile 'com.android.support:appcompat-v7:21.0.+'
compile 'com.android.support:cardview-v7:21.0.+'
compile 'com.android.support:recyclerview-v7:21.0.+'
}

EditText
Spinner
CheckBox
RadioButton
SwitchCompat
CheckedTextView
RecyclerView
CardView
Palette

完全ではないもののいくつかのウィジェットは appcompat-v7 で対応できる.

Lollipopを載せた端末の拡散具合や人気を考えると, OS4.x系端末でのマテリアルデザイン表示をしないと「マテリアルデザインに対応します(しました)」とうたいづらい.

よほどUIが凝ったアプリで無い限り, この appcompat-v7 ウィジェットを使って, これまで(API-19まで)のテーマに適用する, まずは.

/res/values/styles.xml

...
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...

とこれまでのテーマの親にもつ.

このあと, 微調整を行い, API-19までのUIをマテリアルなかんじに仕上げていき, そのあと *-v21 のリソースを触りながら, 気にせず Lollipop端末に向けてのマテリアル化を進めていく.

と, そんな順序が王道ではないかな...

Maintaining Compatibility | Android Developers