More Related Content
More from Yuki Anzai (20)
Customizing Theme and Style for Material Design : Droid Kaigi 2016
- 20. <style name="Base.Theme.AppCompat.Dialog.FixedSize">
<item name="windowFixedWidthMajor">@dimen/abc_dialog_fixed_width_major</item>
<item name="windowFixedWidthMinor">@dimen/abc_dialog_fixed_width_minor</item>
<item name="windowFixedHeightMajor">@dimen/abc_dialog_fixed_height_major</item>
<item name="windowFixedHeightMinor">@dimen/abc_dialog_fixed_height_minor</item>
</style>
values/values.xml
<item name="abc_dialog_fixed_height_major" type="dimen">80%</item>
<item name="abc_dialog_fixed_height_minor" type="dimen">100%</item>
<item name="abc_dialog_fixed_width_major" type="dimen">320dp</item>
<item name="abc_dialog_fixed_width_minor" type="dimen">320dp</item>
values-large/values-large.xml
<item name="abc_dialog_fixed_height_major" type="dimen">60%</item>
<item name="abc_dialog_fixed_height_minor" type="dimen">90%</item>
<item name="abc_dialog_fixed_width_major" type="dimen">60%</item>
<item name="abc_dialog_fixed_width_minor" type="dimen">90%</item>
values-xlarge/values-xlarge.xml
<item name="abc_dialog_fixed_height_major" type="dimen">60%</item>
<item name="abc_dialog_fixed_height_minor" type="dimen">90%</item>
<item name="abc_dialog_fixed_width_major" type="dimen">50%</item>
<item name="abc_dialog_fixed_width_minor" type="dimen">70%</item>
- 27. <!-- 黒系 -->
<style name="Theme.DroidKaigi" parent="Theme.AppCompat">
</style>
<style name="Theme.DroidKaigi.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<!-- 白系 -->
<style name="Theme.DroidKaigi.Light"
parent="Theme.AppCompat.Light.DarkActionBar">
</style>
<style name="Theme.DroidKaigi.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
- 28. <!-- 黒系 -->
<style name="Theme.DroidKaigi" parent="Theme.AppCompat">
</style>
<style name="Theme.DroidKaigi.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<!-- 白系 -->
<style name=“Theme.DroidKaigi.Light"
parent="Theme.AppCompat.Light.DarkActionBar">
</style>
<style name="Theme.DroidKaigi.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
- 44. <!-- textAppearance -->
<style name="TextAppearance.DroidKaigi.Title"
parent="TextAppearance.AppCompat.Title">
<item name="android:textSize">21sp</item>
</style>
<style name="TextAppearance.DroidKaigi.Title.Inverse"
parent="TextAppearance.AppCompat.Title.Inverse">
<item name="android:textSize">21sp</item>
</style>
<style name="TextAppearance.DroidKaigi.Subhead"
parent="TextAppearance.AppCompat.Subhead">
<item name="android:textSize">17sp</item>
</style>
<style name="TextAppearance.DroidKaigi.Subhead.Inverse"
parent="TextAppearance.AppCompat.Subhead.Inverse">
<item name="android:textSize">17sp</item>
</style>
- 60. <style name="Base.Widget.AppCompat.Button" parent="android:Widget">
<item name="android:background">@drawable/abc_btn_default_mtrl_shape</item>
<item name="android:textAppearance">?android:attr/textAppearanceButton</item>
<item name="android:minHeight">48dip</item>
<item name="android:minWidth">88dip</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
<item name="android:gravity">center_vertical|center_horizontal</item>
</style>
<style name="Base.Widget.AppCompat.Button.Borderless">
<item name="android:background">@drawable/abc_btn_borderless_material</item>
</style>
<style name="Base.Widget.AppCompat.Button.Borderless.Colored">
<item name="android:textColor">?attr/colorAccent</item>
</style>
<style name="Base.Widget.AppCompat.Button.Colored">
<item name="android:background">@drawable/abc_btn_colored_material</item>
<item name="android:textAppearance">@style/
TextAppearance.AppCompat.Widget.Button.Inverse</item>
</style>
<style name="Base.Widget.AppCompat.Button.Small">
<item name="android:minHeight">48dip</item>
<item name="android:minWidth">48dip</item>
</style>
- 68. <style name="Base.Widget.AppCompat.CompoundButton.CheckBox"
parent="android:Widget.CompoundButton.CheckBox">
<item name="android:button">?android:attr/listChoiceIndicatorMultiple</item>
<item name="android:background">?attr/controlBackground</item>
</style>
<style name="Base.Widget.AppCompat.CompoundButton.RadioButton"
parent="android:Widget.CompoundButton.RadioButton">
<item name="android:button">?android:attr/listChoiceIndicatorSingle</item>
<item name="android:background">?attr/controlBackground</item>
</style>
<style name="Base.Widget.AppCompat.CompoundButton.Switch"
parent="android:Widget.CompoundButton">
<item name="track">@drawable/abc_switch_track_mtrl_alpha</item>
<item name="android:thumb">@drawable/abc_switch_thumb_material</item>
<item name="switchTextAppearance">@style/
TextAppearance.AppCompat.Widget.Switch</item>
<item name="android:background">?attr/controlBackground</item>
<item name="showText">false</item>
<item name="switchPadding">@dimen/abc_switch_padding</item>
<item name="android:textOn">@string/abc_capital_on</item>
<item name="android:textOff">@string/abc_capital_off</item>
</style>
- 74. <style name="AppTheme" parent="Theme.AppCompat">
<item name="colorControlActivated">#FF4081</item>
<item name="android:colorForeground">#3F51B5</item>
<item name="colorSwitchThumbNormal">@color/switch_thumb</item>
</style>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#66303F9F" android:state_enabled="false" />
<item android:color="#FFFFFF" />
</selector>
- 85. <style name="Theme.DroidKaigi" parent="Theme.AppCompat">
<item name="editTextStyle">@style/Widget.DroidKaigi.EditText</item>
<!-- ↑だけで十分だが、プレビューに適用させるにはこれも必要 -->
<item name="android:editTextStyle">@style/Widget.DroidKaigi.EditText</item>
</style>
<style name="Widget.DroidKaigi.EditText" parent="Widget.AppCompat.EditText">
<item name="android:textAppearance">@style/
TextAppearance.DroidKaigi.Widget.EditText</item>
</style>
<style name="TextAppearance.DroidKaigi.Widget.EditText"
parent="TextAppearance.AppCompat.Medium.Inverse">
<item name="android:textSize">17sp</item>
</style>
- 87. <style name="Platform.AppCompat" parent="android:Theme">
…
<item name="android:textColorHint">@color/
hint_foreground_material_dark</item>
<item name="android:textColorHintInverse">@color/
hint_foreground_material_light</item>
…
</style>
<color name="hint_foreground_material_dark">@color/
bright_foreground_disabled_material_dark</color>
<color name="hint_foreground_material_light">@color/
bright_foreground_disabled_material_light</color>
<color name="bright_foreground_disabled_material_dark">#80ffffff</color>
<color name="bright_foreground_disabled_material_light">#80000000</color
- 91. <style name="Base.Widget.AppCompat.Spinner"
parent="Platform.Widget.AppCompat.Spinner">
<item name="android:background">@drawable/abc_spinner_mtrl_am_alpha</item>
<item name="android:popupBackground">@drawable/abc_popup_background_mtrl_mult</
item>
<item name="android:dropDownSelector">?attr/listChoiceBackgroundIndicator</item>
<item name="android:dropDownVerticalOffset">0dip</item>
<item name="android:dropDownHorizontalOffset">0dip</item>
<item name="android:dropDownWidth">wrap_content</item>
<item name="android:clickable">true</item>
<item name="android:gravity">left|start|center_vertical</item>
<item name="overlapAnchor">true</item>
</style>
<style name="Base.Widget.AppCompat.Spinner.Underlined">
<item name="android:background">@drawable/
abc_spinner_textfield_background_material</item>
</style>
<style name="Base.Widget.AppCompat.TextView.SpinnerItem"
parent="android:Widget.TextView.SpinnerItem">
<item name="android:textAppearance">@style/
TextAppearance.AppCompat.Widget.TextView.SpinnerItem</item>
<item name="android:paddingLeft">8dp</item>
<item name="android:paddingRight">8dp</item>
</style>
- 97. public AbsSpinner(Context context, AttributeSet attrs, int defStyleAttr, int defSt
super(context, attrs, defStyleAttr, defStyleRes);
initAbsSpinner();
final TypedArray a = context.obtainStyledAttributes(
attrs, R.styleable.AbsSpinner, defStyleAttr, defStyleRes);
final CharSequence[] entries = a.getTextArray(R.styleable.AbsSpinner_entries);
if (entries != null) {
final ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(
context, R.layout.simple_spinner_item, entries);
adapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item);
setAdapter(adapter);
}
a.recycle();
}
- 101. <style name="Theme.DroidKaigi" parent="Theme.AppCompat">
<item name="android:spinnerItemStyle">@style/
Widget.DroidKaigi.TextView.SpinnerItem</item>
</style>
<style name="Widget.DroidKaigi.TextView.SpinnerItem"
parent="Widget.AppCompat.TextView.SpinnerItem">
<item name="android:minHeight">?attr/
listPreferredItemHeightSmall</item>
<item name="android:gravity">center_vertical</item>
</style>
- 104. <style name="Base.Widget.AppCompat.SeekBar" parent="android:Widget">
<item name="android:indeterminateOnly">false</item>
<item name="android:progressDrawable">@drawable/
abc_seekbar_track_material</item>
<item name="android:indeterminateDrawable">@drawable/
abc_seekbar_track_material</item>
<item name="android:thumb">@drawable/abc_seekbar_thumb_material</item>
<item name="android:focusable">true</item>
<item name="android:paddingLeft">16dip</item>
<item name="android:paddingRight">16dip</item>
</style>
- 112. <style name="Platform.ThemeOverlay.AppCompat" parent=""/>
<style name="Platform.ThemeOverlay.AppCompat.Dark">
<!-- Action Bar styles -->
<item name="actionBarItemBackground">@drawable/abc_item_background_holo_dark</item>
<item name="actionDropDownStyle">@style/Widget.AppCompat.Spinner.DropDown.ActionBar</ite
<item name="selectableItemBackground">@drawable/abc_item_background_holo_dark</item>
<!-- SearchView styles -->
<item name="android:autoCompleteTextViewStyle">@style/Widget.AppCompat.AutoCompleteTextV
<item name="android:dropDownItemStyle">@style/Widget.AppCompat.DropDownItem.Spinner</ite
</style>
<style name="Platform.ThemeOverlay.AppCompat.Light">
<item name="actionBarItemBackground">@drawable/abc_item_background_holo_light</item>
<item name="actionDropDownStyle">@style/Widget.AppCompat.Light.Spinner.DropDown.ActionBa
<item name="selectableItemBackground">@drawable/abc_item_background_holo_light</item>
<!-- SearchView attributes -->
<item name="android:autoCompleteTextViewStyle">@style/Widget.AppCompat.Light.AutoComplet
<item name="android:dropDownItemStyle">@style/Widget.AppCompat.DropDownItem.Spinner</ite
</style>
ベーステーマなし
ActionBar系のスタイルだけ指定
- 115. <style name="Base.ThemeOverlay.AppCompat.Dark" parent="Platform.ThemeOverlay.AppCompat.Dark"
<item name="android:windowBackground">@color/background_material_dark</item>
<item name="android:colorForeground">@color/foreground_material_dark</item>
<item name="android:colorForegroundInverse">@color/foreground_material_light</item>
<item name="android:colorBackground">@color/background_material_dark</item>
<item name="android:colorBackgroundCacheHint">@color/abc_background_cache_hint_selector_
<item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
<item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_light</ite
<item name="android:textColorPrimaryDisableOnly">@color/abc_primary_text_disable_only_ma
<item name="android:textColorSecondary">@color/abc_secondary_text_material_dark</item>
<item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_light<
<item name="android:textColorTertiary">@color/abc_secondary_text_material_dark</item>
<item name="android:textColorTertiaryInverse">@color/abc_secondary_text_material_light</
<item name="android:textColorHint">@color/hint_foreground_material_dark</item>
<item name="android:textColorHintInverse">@color/hint_foreground_material_light</item>
<item name="android:textColorHighlight">@color/highlighted_text_material_dark</item>
<item name="colorControlNormal">?android:attr/textColorSecondary</item>
<item name="colorControlHighlight">@color/ripple_material_dark</item>
<item name="colorButtonNormal">@color/button_material_dark</item>
<item name="colorSwitchThumbNormal">@color/switch_thumb_material_dark</item>
<!-- Used by MediaRouter -->
<item name="isLightTheme">false</item>
</style>
<style name="Base.ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="colorControlNormal">?android:attr/textColorPrimary</item>
<item name="searchViewStyle">@style/Widget.AppCompat.SearchView.ActionBar</item>
</style>
- 116. <style name="Base.ThemeOverlay.AppCompat.Dark" parent="Platform.ThemeOverlay.AppCompat.Dark"
<item name="android:windowBackground">@color/background_material_dark</item>
<item name="android:colorForeground">@color/foreground_material_dark</item>
<item name="android:colorForegroundInverse">@color/foreground_material_light</item>
<item name="android:colorBackground">@color/background_material_dark</item>
<item name="android:colorBackgroundCacheHint">@color/abc_background_cache_hint_selector_
<item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
<item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_light</ite
<item name="android:textColorPrimaryDisableOnly">@color/abc_primary_text_disable_only_ma
<item name="android:textColorSecondary">@color/abc_secondary_text_material_dark</item>
<item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_light<
<item name="android:textColorTertiary">@color/abc_secondary_text_material_dark</item>
<item name="android:textColorTertiaryInverse">@color/abc_secondary_text_material_light</
<item name="android:textColorHint">@color/hint_foreground_material_dark</item>
<item name="android:textColorHintInverse">@color/hint_foreground_material_light</item>
<item name="android:textColorHighlight">@color/highlighted_text_material_dark</item>
<item name="colorControlNormal">?android:attr/textColorSecondary</item>
<item name="colorControlHighlight">@color/ripple_material_dark</item>
<item name="colorButtonNormal">@color/button_material_dark</item>
<item name="colorSwitchThumbNormal">@color/switch_thumb_material_dark</item>
<!-- Used by MediaRouter -->
<item name="isLightTheme">false</item>
</style>
<style name="Base.ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="colorControlNormal">?android:attr/textColorPrimary</item>
<item name="searchViewStyle">@style/Widget.AppCompat.SearchView.ActionBar</item>
</style>
背景と色を指定
- 117. <style name="Base.ThemeOverlay.AppCompat.Light" parent="Platform.ThemeOverlay.AppCompat.Ligh
<item name="android:windowBackground">@color/background_material_light</item>
<item name="android:colorForeground">@color/foreground_material_light</item>
<item name="android:colorForegroundInverse">@color/foreground_material_dark</item>
<item name="android:colorBackground">@color/background_material_light</item>
<item name="android:colorBackgroundCacheHint">@color/abc_background_cache_hint_selector_
<item name="android:textColorPrimary">@color/abc_primary_text_material_light</item>
<item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_dark</item
<item name="android:textColorSecondary">@color/abc_secondary_text_material_light</item>
<item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_dark</
<item name="android:textColorTertiary">@color/abc_secondary_text_material_light</item>
<item name="android:textColorTertiaryInverse">@color/abc_secondary_text_material_dark</i
<item name="android:textColorPrimaryDisableOnly">@color/abc_primary_text_disable_only_ma
<item name="android:textColorPrimaryInverseDisableOnly">@color/abc_primary_text_disable_
<item name="android:textColorHint">@color/hint_foreground_material_light</item>
<item name="android:textColorHintInverse">@color/hint_foreground_material_dark</item>
<item name="android:textColorHighlight">@color/highlighted_text_material_light</item>
<item name="colorControlNormal">?android:attr/textColorSecondary</item>
<item name="colorControlHighlight">@color/ripple_material_light</item>
<item name="colorButtonNormal">@color/button_material_light</item>
<item name="colorSwitchThumbNormal">@color/switch_thumb_material_light</item>
<!-- Used by MediaRouter -->
<item name="isLightTheme">true</item>
</style>
- 118. <style name="Base.ThemeOverlay.AppCompat.Light" parent="Platform.ThemeOverlay.AppCompat.Ligh
<item name="android:windowBackground">@color/background_material_light</item>
<item name="android:colorForeground">@color/foreground_material_light</item>
<item name="android:colorForegroundInverse">@color/foreground_material_dark</item>
<item name="android:colorBackground">@color/background_material_light</item>
<item name="android:colorBackgroundCacheHint">@color/abc_background_cache_hint_selector_
<item name="android:textColorPrimary">@color/abc_primary_text_material_light</item>
<item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_dark</item
<item name="android:textColorSecondary">@color/abc_secondary_text_material_light</item>
<item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_dark</
<item name="android:textColorTertiary">@color/abc_secondary_text_material_light</item>
<item name="android:textColorTertiaryInverse">@color/abc_secondary_text_material_dark</i
<item name="android:textColorPrimaryDisableOnly">@color/abc_primary_text_disable_only_ma
<item name="android:textColorPrimaryInverseDisableOnly">@color/abc_primary_text_disable_
<item name="android:textColorHint">@color/hint_foreground_material_light</item>
<item name="android:textColorHintInverse">@color/hint_foreground_material_dark</item>
<item name="android:textColorHighlight">@color/highlighted_text_material_light</item>
<item name="colorControlNormal">?android:attr/textColorSecondary</item>
<item name="colorControlHighlight">@color/ripple_material_light</item>
<item name="colorButtonNormal">@color/button_material_light</item>
<item name="colorSwitchThumbNormal">@color/switch_thumb_material_light</item>
<!-- Used by MediaRouter -->
<item name="isLightTheme">true</item>
</style>
背景と色を指定
- 131. <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/andr
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/cover"
tools:ignore="ContentDescription" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button" />
</FrameLayout>
- 132. <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/andr
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/cover"
tools:ignore="ContentDescription" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button" />
</FrameLayout>
- 133. <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/andr
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/cover"
tools:ignore="ContentDescription" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:text="New Button" />
</FrameLayout>
- 134. <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/andr
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/cover"
tools:ignore="ContentDescription" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:text="New Button" />
</FrameLayout>
- 135. <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/andr
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
... />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button" />
</FrameLayout>
</FrameLayout>
- 136. <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/andr
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
... />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button" />
</FrameLayout>
</FrameLayout>
- 144. <style name="Theme.DroidKaigi.TranslucentStatusBar" parent="...">
<item name="android:statusBarColor">@android:color/transparent</it
</style>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
findViewById(android.R.id.content).setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
}
- 149. <style name="Theme.DroidKaigi.TranslucentStatusBar" parent="...">
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowLightStatusBar">true</item>
</style>
<style name=“Theme.DroidKaigi.TranslucentStatusBar"
parent="Theme.DroidKaigi.Light.NoActionBar" />
<style name="Theme.DroidKaigi.TranslucentStatusBar" parent="...">
<item name="android:windowTranslucentStatus">true</item>
</style>
<style name="Theme.DroidKaigi.TranslucentStatusBar" parent="...">
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
- 150. @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
findViewById(android.R.id.content).setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
}