VISUAL STUDIO   Windows Mac

Part 4 - Material Design Features

PDF for offline use
Related Articles:
Related SDKs:

Let us know how you feel about this

Translation Quality


0/250

last updated: 2017-06

Part 4 describes Designer features that make it easier for developers to create Material Design-compliant layouts. This section introduces and explains how to use the Material Grid, the Material Color Palette, the Typographic Scale, and the Theme Editor.

Overview

The Xamarin.Android Designer includes features that make it easier for you to create Material-Design-compliant layouts. If you are not familiar with Material Design, see the Material Design Introduction.

In this guide, we'll have a look at the following Designer features:

  • Material Grid – An overlay on the Design Surface that shows a grid, spacing, and keylines to help you place layout widgets according to Material Design guidelines.

  • Material Color Palette – A Property Pad dialog that assists you in choosing a color from the official Material Design palette.

  • Typographic Scale – A Property Pad dialog that provides you with a choice of Material Design-compliant settings for the textAppearance property of text fields.

  • Theme Editor – A small color resource editor that lets you set color information for a subset of a theme. For example, you can preview and modify Material colors such as colorPrimary, colorPrimaryDark, and colorAccent.

We'll have look at each of these features and provide examples of how to use them.

Material Design Grid

The Material Design Grid menu is available from the toolbar at the top of the Designer:

Material Design grid

Material Design grid

When you click the Material Design Grid icon, the Designer displays an overlay on the Design Surface that includes the following elements:

  • Keylines (orange lines)

  • Spacing (green areas)

  • A grid (blue lines)

These elements can be seen in the followng screenshot:

Keyline, spacing, and grid

Keyline, spacing, and grid

Each of these overlay items is configurable. When you click the ellipsis next to the Material Design Grid menu, a dialog popover opens that allows you to disable/enable the grid, configure the placement of keylines, and set the spacings. Note that all values are expressed in dp (density-independent pixels):

Grid, keyline, and spacing configuration

Each of these overlay items is configurable. When you click the down triangle next to the Material Design Grid menu, a dialog popover opens that allows you to disable/enable the grid, configure the placement of keylines, and set the spacings. Note that all values are expressed in dp (density-independent pixels):

Grid, keyline, and spacing configuration

To add a new keyline, enter a new offset value in the Offset box, select a location (left, top, right, or bottom) and click the + icon to add the new keyline.

Similarly, to add a new spacing, enter the size and offset (in dp) into the Size and Offset boxes, respectively. Select a location (left, top, right, or bottom) and click the + icon to add the new spacing.

When you change these configuration values, they are saved in the layout XML file and reused when you open the layout again.

Material Design Color Palette

Every Property panel item that accepts a color now has an additional icon that you can use to open the Material Design Color Palette, as shown in this screenshot:

Color icon

When you click this icon, a dialog popover opens that makes it possible for you to configure the color of that property from the Material Design color palette:

Material Design color palette

The top of the color palette displays primary Material Design colors while the bottom of the palette displays a range of hues for the selected primary color. For example, when you select Indigo, a collection of Indigo hues is displayed at the bottom of the dialog. When you select a hue, the color of the property is changed to the selected hue. In the following example, the Background Tint of the button is changed to Indigo 500:

Choose Indigo 500

Background Tint is set to the color code for Indigo 500 (#ff3f51b5), and the Designer updates the background color of the button to reflect this change:

Background tint changes

For more information about the Material Design color palette, see the Material Design Color Palette Guide.

Typographic Scale

The Text Appearance section of the Property pad Style tab has an icon that lets you select from a TextAppearance style that conforms to the Material Design specification:

Style tab

When you click this icon, it opens the Typographic Scale dialog popover, which presents a list of pre-configured text styles that you can choose from:

Text style chooser

In the following example, clicking Display 1 changes the text of the button to the larger font of Display 1:

Display 1 style

The text style in the Typographic Scale dialog follows the Theme setting. For example, if the Light theme is chosen in the Designer, the list of available text styles mirrors the Light theme:

Light theme

Theme Editor

The Theme Editor lets you customize color information for a subset of theme attributes. To open the Theme Editor, click the paintbrush icon on the toolbar:

Theme Editor icon

Theme Editor icon

Although the Theme Editor is accessible from the toolbar for all target Android versions and API levels, only a subset of the capabilities described below are available if the target API level is earlier than API 21 (Android 5.0 Lollipop).

The left-hand panel of the Theme Editor displays the list of colors that make up the currently selected theme (in this example, we are using the Default Theme):

Theme Editor

Theme Editor

When you select a color on the left, the right-hand panel provides the following tabs to help you edit that color:

  • Inherit – Displays a style inheritance diagram for the selected color and lists the resolved color and color code assigned to that theme color.

  • Color Picker – Lets you change the selected to color to any arbitrary value.

  • Material Palette – Lets you change the selected to color to a value that conforms to Material Design.

  • Resources – Lets you change the selected to color to one of the other existing color resources in the theme.

Let's look at each one of these tabs in detail.

Inherit Tab

As seen in the following example, the Inherit tab lists the style inheritance for the Background color of the Default Theme:

Inherit Tab

Inherit Tab

In this example, the Default Theme inherits from a style that uses @color/background_material_dark but overrides it with color/material_grey_850, which has a color code value of #ff303030. For more information about style inheritance, see Styles and Themes.

Color Picker

The following screenshot illustrates the Color Picker:

Color Picker

Color Picker

In this example, the Background color can be changed to any value through various means:

  • Clicking a color directly.
  • Entering hue, saturation, and brightness values.
  • Entering RGB (red, green, blue) values in decimal.
  • Setting the alpha (opacity) for the selected color.
  • Entering the hexadecimal color code directly.

The color you choose in the Color Picker is not restricted to Material Design guidelines or to the set of available color resources.

Resources

The Resources tab offers a list of color resources that are already present in the theme:

Resources

Resources

Using the Resources tab constrains your choices to this list of colors. Keep in mind that if you choose a color resource that is already assigned to another part of the theme, two adjacent elements of the UI may "run together" (because they have the same color) and become difficult for the user to distinguish.

Material Palette

The Material Palette tab opens the Material Design Color Palette. Choosing a color value from this palette constrains your color choice so that it is consistent with Material Design guidelines.

Material Palette

The top of the color palette displays primary Material Design colors while the bottom of the palette displays a range of hues for the selected primary color. For example, when you select Indigo, a collection of Indigo hues is displayed at the bottom of the dialog. When you select a hue, the color of the property is changed to the selected hue. In the following example, the Background Tint of the button is changed to Indigo 500:

Select Indigo 500

Background Tint is set to the color code for Indigo 500 (#ff3f51b5), and the Designer updates the background color to reflect this change:

Background tint changed

For more information about the Material Design color palette, see the Material Design Color Palette Guide.

The Material Palette tab opens the Material Design Color Palette described earlier. Choosing a color value from this palette constrains your color choice so that it is consistent with Material Design guidelines.

Material Palette

Creating a New Theme

In the following example, we'll use the Material Palette to create a new custom theme. First, we'll change the Background color to Blue 900:

Change background to Blue 900

Change background to Blue 900

When a color resource is changed, a message pops up with the message, The current theme has unsaved changes:

Unsaved changes warning

Unsaved changes warning

The Background color in the Designer has changed to the new color selection, but this change has not yet been saved. Two choices are offered for how to handle the change:

  • Discard Changes – Discards the new color choice (or choices) and reverts the theme to its original state.

  • Create New Theme – Creates a new theme that is derived from the currently-selected theme and uses the color overrides made in the Theme Editor.

When you click Create New Theme, one of the following will happen, depending on the selected theme:

  • If the currently selected theme on the Designer is not a project theme, you are presented with the option to create a new resource file with the customized theme (using the selected theme as the parent of the customized theme). The Designer switches to the customized theme after it is created.

  • If the currently selected theme is a project theme that is defined in one location, you are presented with the Update theme option; clicking this option updates the currently selected theme rather than creating a new one.

  • If the currently selected theme is a project theme that is defined in multiple locations (for example, in differently-suffixed values folders such as values-v21), you are presented a dialog that asks for a new location for saving the customized theme.

Continuing the previous example, clicking Create New Theme results in the creation of a new theme called Custom:

Custom theme added

Custom theme added

Because the currently-selected theme is not a project theme, there is no dialog to update the selected theme or to specify a new location.

Summary

Part 4 described the Material Design features available in the Xamarin.Android Designer. It explained how to enable and configure the Material Design Grid, how to use the Material Design Color Palette to edit color properties, and how to use the Typographic Scale selector to configure text properties. It also demonstrated how to use the Theme Editor to create new custom themes that conform to Material Design guidelines. For more information about Xamarin.Android support for Material Design, see Material Theme.

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.