Skip to content

Commit 624ed46

Browse files
afohrmanhunterstich
authored andcommitted
Add elevation overlays to elevation and shadows main demo.
PiperOrigin-RevId: 296229479
1 parent 0d9fe32 commit 624ed46

File tree

7 files changed

+161
-164
lines changed

7 files changed

+161
-164
lines changed

catalog/java/io/material/catalog/elevation/ElevationAnimationDemoFragment.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ public View onCreateDemoView(
4444

4545
TextView translationZLabelView = view.findViewById(R.id.translation_z_label);
4646

47-
float maxTranslationZ =
48-
getResources().getDimension(R.dimen.cat_elevation_demo_max_translation_z);
47+
float maxTranslationZ = getResources().getDimension(R.dimen.cat_elevation_max_translation_z);
4948
int maxTranslationZDp = (int) (maxTranslationZ / getResources().getDisplayMetrics().density);
5049
translationZLabelView.setText(
5150
getString(R.string.cat_elevation_animation_label, maxTranslationZDp));

catalog/java/io/material/catalog/elevation/ElevationMainDemoFragment.java

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
import io.material.catalog.R;
2020

2121
import android.os.Bundle;
22+
import androidx.annotation.ArrayRes;
2223
import androidx.annotation.LayoutRes;
24+
import androidx.annotation.NonNull;
2325
import androidx.annotation.Nullable;
2426
import android.view.LayoutInflater;
2527
import android.view.View;
@@ -34,56 +36,68 @@
3436

3537
/** A fragment that displays the main Elevation demo for the Catalog app. */
3638
public class ElevationMainDemoFragment extends DemoFragment {
37-
protected int currentElevation;
38-
protected int elevationDP;
39-
protected int[] elevationValues;
39+
protected int currentElevationLevel = 0;
40+
protected int elevationInDp;
41+
private int[] elevationLevelValues;
4042

4143
@Override
4244
public View onCreateDemoView(
4345
LayoutInflater layoutInflater, @Nullable ViewGroup viewGroup, @Nullable Bundle bundle) {
4446
View view = layoutInflater.inflate(getDemoContent(), viewGroup, false /* attachToRoot */);
45-
setUpElevationValues();
46-
setUp(view);
47+
48+
elevationLevelValues = getResources().getIntArray(getElevationLevelValues());
49+
50+
Button increaseButton = view.findViewById(R.id.increase_elevation);
51+
Button decreaseButton = view.findViewById(R.id.decrease_elevation);
52+
53+
increaseButton.setOnClickListener(
54+
button -> updateCardsElevationLevel(view, currentElevationLevel + 1));
55+
decreaseButton.setOnClickListener(
56+
button -> updateCardsElevationLevel(view, currentElevationLevel - 1));
57+
58+
updateCardsElevationLevel(view, currentElevationLevel);
4759
return view;
4860
}
4961

5062
@LayoutRes
51-
protected int getDemoContent() {
52-
return R.layout.cat_elevation_shadows_fragment;
63+
private int getDemoContent() {
64+
return R.layout.cat_elevation_fragment;
5365
}
5466

5567
@SuppressWarnings("RestrictTo") // It's safe to use restricted MDC code in MDC Catalog.
56-
protected void updateElevationLevel(View view, int newLevel) {
68+
private void updateCardsElevationLevel(View view, int newElevationLevel) {
5769
List<MaterialCardView> elevationCards =
5870
DemoUtils.findViewsWithType(view, MaterialCardView.class);
5971

60-
TextView levelText = view.findViewById(R.id.current_elevation_level);
61-
62-
if (newLevel >= 0 && newLevel <= 7) {
63-
currentElevation = newLevel;
64-
elevationDP = elevationValues[currentElevation];
72+
if (newElevationLevel >= 0 && newElevationLevel <= getMaxElevationValue()) {
73+
setElevationLevel(newElevationLevel);
6574
for (MaterialCardView elevationCard : elevationCards) {
66-
elevationCard.setCardElevation(ViewUtils.dpToPx(view.getContext(), elevationDP));
75+
elevationCard.setCardElevation(ViewUtils.dpToPx(view.getContext(), elevationInDp));
6776
}
68-
levelText.setText(
69-
getResources().getString(R.string.cat_elevation_fragment_level, elevationDP));
77+
setElevationLevelTextView(view, getElevationLevelText());
7078
}
7179
}
7280

73-
protected void setUp(View view) {
74-
currentElevation = 0;
81+
private void setElevationLevel(int newElevationLevel) {
82+
currentElevationLevel = newElevationLevel;
83+
elevationInDp = elevationLevelValues[currentElevationLevel];
84+
}
7585

76-
Button increaseButton = view.findViewById(R.id.increase_elevation);
77-
Button decreaseButton = view.findViewById(R.id.decrease_elevation);
86+
private static void setElevationLevelTextView(View view, @NonNull String levelText) {
87+
TextView levelTextView = view.findViewById(R.id.current_elevation_level_label);
88+
levelTextView.setText(levelText);
89+
}
7890

79-
elevationDP = elevationValues[currentElevation];
91+
protected String getElevationLevelText() {
92+
return getResources().getString(R.string.cat_elevation_fragment_level, elevationInDp);
93+
}
8094

81-
increaseButton.setOnClickListener(button -> updateElevationLevel(view, currentElevation + 1));
82-
decreaseButton.setOnClickListener(button -> updateElevationLevel(view, currentElevation - 1));
83-
updateElevationLevel(view, 0);
95+
@ArrayRes
96+
protected int getElevationLevelValues() {
97+
return R.array.cat_elevation_level_values;
8498
}
8599

86-
protected void setUpElevationValues() {
87-
elevationValues = getResources().getIntArray(R.array.cat_elevation_values);
100+
private int getMaxElevationValue() {
101+
return elevationLevelValues.length - 1;
88102
}
89103
}
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
Copyright 2018 The Android Open Source Project
4+
5+
Licensed under the Apache License, Version 2.0 (the "License");
6+
you may not use this file except in compliance with the License.
7+
You may obtain a copy of the License at
8+
9+
https://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
-->
17+
18+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
19+
android:layout_width="match_parent"
20+
android:layout_height="match_parent">
21+
<LinearLayout
22+
android:id="@+id/buttons"
23+
android:layout_width="match_parent"
24+
android:layout_height="wrap_content"
25+
android:layout_alignParentBottom="true"
26+
android:gravity="center"
27+
android:orientation="vertical">
28+
<LinearLayout
29+
android:layout_width="match_parent"
30+
android:layout_height="wrap_content"
31+
android:gravity="center"
32+
android:orientation="horizontal">
33+
<Button
34+
android:id="@+id/increase_elevation"
35+
style="?android:attr/buttonBarButtonStyle"
36+
android:layout_width="wrap_content"
37+
android:layout_height="wrap_content"
38+
android:layout_margin="@dimen/cat_elevation_text_padding"
39+
android:text="@string/cat_elevation_increase_elevation" />
40+
<Button
41+
android:id="@+id/decrease_elevation"
42+
style="?android:attr/buttonBarButtonStyle"
43+
android:layout_width="wrap_content"
44+
android:layout_height="wrap_content"
45+
android:layout_margin="@dimen/cat_elevation_text_padding"
46+
android:text="@string/cat_elevation_decrease_elevation" />
47+
</LinearLayout>
48+
<TextView
49+
android:id="@+id/current_elevation_level_label"
50+
android:textStyle="bold"
51+
android:layout_width="match_parent"
52+
android:layout_height="wrap_content"
53+
android:layout_margin="@dimen/cat_elevation_text_padding"
54+
android:gravity="center" />
55+
</LinearLayout>
56+
57+
<ScrollView
58+
android:layout_width="match_parent"
59+
android:layout_height="wrap_content"
60+
android:layout_above="@id/buttons"
61+
android:layout_centerVertical="true"
62+
android:layout_gravity="center_vertical">
63+
<LinearLayout
64+
android:layout_width="match_parent"
65+
android:layout_height="700dp"
66+
android:orientation="vertical">
67+
<com.google.android.material.card.MaterialCardView
68+
android:layout_width="match_parent"
69+
android:layout_height="wrap_content"
70+
android:layout_margin="@dimen/cat_elevation_padding"
71+
android:minHeight="@dimen/cat_elevation_min_card_height">
72+
<TextView
73+
android:id="@+id/cat_elevation_explanation"
74+
android:layout_width="match_parent"
75+
android:layout_height="wrap_content"
76+
android:layout_margin="@dimen/cat_elevation_padding"
77+
android:gravity="center"
78+
android:text="@string/cat_elevation_explanation" />
79+
</com.google.android.material.card.MaterialCardView>
80+
<com.google.android.material.card.MaterialCardView
81+
android:layout_width="match_parent"
82+
android:layout_height="wrap_content"
83+
android:layout_margin="@dimen/cat_elevation_padding"
84+
android:minHeight="@dimen/cat_elevation_min_card_height" />
85+
<com.google.android.material.card.MaterialCardView
86+
android:layout_width="match_parent"
87+
android:layout_height="wrap_content"
88+
android:layout_margin="@dimen/cat_elevation_padding"
89+
android:minHeight="@dimen/cat_elevation_min_card_height" />
90+
<com.google.android.material.card.MaterialCardView
91+
android:layout_width="match_parent"
92+
android:layout_height="wrap_content"
93+
android:layout_margin="@dimen/cat_elevation_padding"
94+
android:minHeight="@dimen/cat_elevation_min_card_height" />
95+
<com.google.android.material.card.MaterialCardView
96+
android:layout_width="match_parent"
97+
android:layout_height="wrap_content"
98+
android:layout_margin="@dimen/cat_elevation_padding"
99+
android:minHeight="@dimen/cat_elevation_min_card_height" />
100+
<com.google.android.material.card.MaterialCardView
101+
android:layout_width="match_parent"
102+
android:layout_height="wrap_content"
103+
android:layout_margin="@dimen/cat_elevation_padding"
104+
android:layout_marginBottom="@dimen/cat_elevation_bottom_padding"
105+
android:minHeight="@dimen/cat_elevation_min_card_height" />
106+
</LinearLayout>
107+
</ScrollView>
108+
</RelativeLayout>

catalog/java/io/material/catalog/elevation/res/layout/cat_elevation_shadows_fragment.xml

Lines changed: 0 additions & 123 deletions
This file was deleted.

catalog/java/io/material/catalog/elevation/res/values/arrays.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<resources>
1919
<integer-array
20-
name="cat_elevation_values">
20+
name="cat_elevation_level_values">
2121
<item>0</item>
2222
<item>1</item>
2323
<item>3</item>

catalog/java/io/material/catalog/elevation/res/values/dimens.xml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@
1616
-->
1717

1818
<resources>
19-
<dimen name="cat_elevation_demo_min_card_height">100dp</dimen>
20-
<dimen name="cat_elevation_demo_text_padding">4dp</dimen>
21-
<dimen name="cat_elevation_demo_card_bottom_padding">6dp</dimen>
22-
<dimen name="cat_elevation_demo_padding">8dp</dimen>
23-
<dimen name="cat_elevation_demo_bottom_padding">16dp</dimen>
24-
<dimen name="cat_elevation_demo_max_translation_z">24dp</dimen>
19+
<dimen name="cat_elevation_min_card_height">100dp</dimen>
20+
<dimen name="cat_elevation_text_padding">4dp</dimen>
21+
<dimen name="cat_elevation_padding">8dp</dimen>
22+
<dimen name="cat_elevation_bottom_padding">16dp</dimen>
23+
<dimen name="cat_elevation_max_translation_z">24dp</dimen>
2524
</resources>

catalog/java/io/material/catalog/elevation/res/values/strings.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@
2323
depicted (by default) using shadows. This demo illustrates the proper rendering of shadows at
2424
different elevations.
2525
</string>
26-
<string name="cat_elevation_overlay_title" translatable="false">Elevation Overlay Demo</string>
27-
<string name="cat_elevation_animation_title" translatable="false">Elevation Animation Demo</string>
28-
<string name="cat_increase_elevation">Increase Elevation</string>
29-
<string name="cat_decrease_elevation">Decrease Elevation</string>
30-
<string name="cat_elevation_fragment_level" translatable="false">"Elevation Spec: %1$ddp."</string>
26+
<string name="cat_elevation_overlay_title">Elevation Overlay Demo</string>
27+
<string name="cat_elevation_animation_title">Elevation Animation Demo</string>
28+
<string name="cat_elevation_increase_elevation">Increase Elevation</string>
29+
<string name="cat_elevation_decrease_elevation">Decrease Elevation</string>
30+
<string name="cat_elevation_fragment_level">"Elevation: %1$ddp."</string>
3131
<string name="cat_elevation_explanation">On Android, the rendering of elevation and shadows
3232
changes visually depending on a component\'s position on the screen. Note components toward the
3333
top of the visual field have more defined anterior shadows, while latter elements have more
3434
pronounced shadows at the base.</string>
35-
<string name="cat_elevation_animation_label" translatable="false">Animating translationZ from 0 to %ddp.</string>
35+
<string name="cat_elevation_animation_label">Animating translationZ from 0 to %ddp.</string>
3636
</resources>

0 commit comments

Comments
 (0)