Skip to content
This repository was archived by the owner on Aug 22, 2024. It is now read-only.

Commit 0363dd5

Browse files
authored
Merge pull request #68 from amardeshbd/49-visual-guideline
[ADDED] [#49] Preview for visual guidelines.
2 parents 8ebb0fd + 8fae3cc commit 0363dd5

File tree

7 files changed

+383
-6
lines changed

7 files changed

+383
-6
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ See https://github.com/googlesamples/android-ConstraintLayoutExamples
4444
* [x] Weighted chains
4545
* [ ] Margins and chains _(Added in 1.1)_
4646
- [ ] Virtual Helpers objects
47-
* [ ] Guideline
47+
* [x] Guideline
4848
* [ ] Barrier
4949
* [ ] Group
5050
- [ ] Optimizer _(Added in 1.1)_

app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,16 @@ class LayoutDataStore @Inject constructor(
117117
title = "Dimension: Percent dimension",
118118
description = "To use percent, you need to set the following:\n\n" +
119119
"* The dimension should be set to MATCH_CONSTRAINT (0dp)\n" +
120-
"* Then set the `layout_constraintWidth_percent` or `layout_constraintHeight_percent` attributes to a value between 0.0 and 1.0")
120+
"* Then set the `layout_constraintWidth_percent` or `layout_constraintHeight_percent` attributes to a value between 0.0 and 1.0"),
121+
LayoutInformation(
122+
layoutResourceId = R.layout.preview_virtual_helper_guideline,
123+
thumbnailResourceId = R.drawable.thumb_virtual_helper_guideline,
124+
title = "Virtual Helper: Guideline",
125+
description = "The Guideline object allows you to create Horizontal and Vertical guidelines which " +
126+
"are positioned relative to the ConstraintLayout container." +
127+
"Widgets can then be positioned by constraining them to such guidelines. ")
128+
129+
121130
/*
122131
Next item template (easy to copy and paste)
123132
LayoutInformation(
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
3+
<!--
4+
~ Copyright (c) 2019 Hossain Khan
5+
~
6+
~ Licensed under the Apache License, Version 2.0 (the "License");
7+
~ you may not use this file except in compliance with the License.
8+
~ You may obtain a copy of the License at
9+
~
10+
~ http://www.apache.org/licenses/LICENSE-2.0
11+
~
12+
~ Unless required by applicable law or agreed to in writing, software
13+
~ distributed under the License is distributed on an "AS IS" BASIS,
14+
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
~ See the License for the specific language governing permissions and
16+
~ limitations under the License.
17+
-->
18+
19+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
20+
android:shape="line">
21+
22+
<stroke
23+
android:width="1dp"
24+
android:color="@color/md_grey_400"
25+
android:dashWidth="10dp"
26+
android:dashGap="5dp" />
27+
</shape>
Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
<!--
2+
~ Copyright (c) 2019 Hossain Khan
3+
~
4+
~ Licensed under the Apache License, Version 2.0 (the "License");
5+
~ you may not use this file except in compliance with the License.
6+
~ You may obtain a copy of the License at
7+
~
8+
~ http://www.apache.org/licenses/LICENSE-2.0
9+
~
10+
~ Unless required by applicable law or agreed to in writing, software
11+
~ distributed under the License is distributed on an "AS IS" BASIS,
12+
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
~ See the License for the specific language governing permissions and
14+
~ limitations under the License.
15+
-->
16+
17+
<vector android:alpha="0.9" android:height="640dp"
18+
android:viewportHeight="640" android:viewportWidth="640"
19+
android:width="640dp" xmlns:android="http://schemas.android.com/apk/res/android">
20+
<path android:fillAlpha="0" android:fillColor="#000000" android:pathData="M2.46,637.84L637.54,637.84L637.54,2.16L2.46,2.16L2.46,637.84Z"/>
21+
<path android:fillAlpha="0" android:fillColor="#FF000000"
22+
android:pathData="M2.46,637.84L637.54,637.84L637.54,2.16L2.46,2.16L2.46,637.84Z"
23+
android:strokeAlpha="1" android:strokeColor="#000000" android:strokeWidth="2"/>
24+
<path android:fillAlpha="1" android:fillColor="#7ee698" android:pathData="M596.86,147.79C598.59,147.79 600,149.19 600,150.93C600,163.19 600,196.81 600,209.07C600,210.81 598.59,212.21 596.86,212.21C529.23,212.21 329.49,212.21 261.86,212.21C260.12,212.21 258.72,210.81 258.72,209.07C258.72,196.81 258.72,163.19 258.72,150.93C258.72,149.19 260.12,147.79 261.86,147.79C329.49,147.79 529.23,147.79 596.86,147.79Z"/>
25+
<path android:fillAlpha="0" android:fillColor="#FF000000"
26+
android:pathData="M596.86,147.79C598.59,147.79 600,149.19 600,150.93C600,163.19 600,196.81 600,209.07C600,210.81 598.59,212.21 596.86,212.21C529.23,212.21 329.49,212.21 261.86,212.21C260.12,212.21 258.72,210.81 258.72,209.07C258.72,196.81 258.72,163.19 258.72,150.93C258.72,149.19 260.12,147.79 261.86,147.79C329.49,147.79 529.23,147.79 596.86,147.79Z"
27+
android:strokeAlpha="1" android:strokeWidth="0"/>
28+
<path android:fillAlpha="1" android:fillColor="#719fd8" android:pathData="M596.95,242.79C598.64,242.79 600,244.15 600,245.83C600,257.72 600,290.32 600,302.2C600,303.88 598.64,305.25 596.95,305.25C529.56,305.25 330.44,305.25 263.05,305.25C261.36,305.25 260,303.88 260,302.2C260,290.32 260,257.72 260,245.83C260,244.15 261.36,242.79 263.05,242.79C330.44,242.79 529.56,242.79 596.95,242.79Z"/>
29+
<path android:fillAlpha="0" android:fillColor="#FF000000"
30+
android:pathData="M596.95,242.79C598.64,242.79 600,244.15 600,245.83C600,257.72 600,290.32 600,302.2C600,303.88 598.64,305.25 596.95,305.25C529.56,305.25 330.44,305.25 263.05,305.25C261.36,305.25 260,303.88 260,302.2C260,290.32 260,257.72 260,245.83C260,244.15 261.36,242.79 263.05,242.79C330.44,242.79 529.56,242.79 596.95,242.79Z"
31+
android:strokeAlpha="1" android:strokeWidth="0"/>
32+
<path android:fillAlpha="0.7" android:fillColor="#000000"
33+
android:pathData="M200,41.56L200,1.56" android:strokeAlpha="0.7"/>
34+
<path android:fillAlpha="0" android:fillColor="#FF000000"
35+
android:pathData="M200,41.56L200,1.56" android:strokeAlpha="0.7"
36+
android:strokeColor="#000000" android:strokeWidth="5"/>
37+
<path android:fillAlpha="0.7" android:fillColor="#000000"
38+
android:pathData="M200,91.56L200,51.56" android:strokeAlpha="0.7"/>
39+
<path android:fillAlpha="0" android:fillColor="#FF000000"
40+
android:pathData="M200,91.56L200,51.56"
41+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
42+
<path android:fillAlpha="0.7" android:fillColor="#000000"
43+
android:pathData="M200,141.56L200,101.56" android:strokeAlpha="0.7"/>
44+
<path android:fillAlpha="0" android:fillColor="#FF000000"
45+
android:pathData="M200,141.56L200,101.56"
46+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
47+
<path android:fillAlpha="0.7" android:fillColor="#000000"
48+
android:pathData="M200,191.56L200,151.56" android:strokeAlpha="0.7"/>
49+
<path android:fillAlpha="0" android:fillColor="#FF000000"
50+
android:pathData="M200,191.56L200,151.56"
51+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
52+
<path android:fillAlpha="0.7" android:fillColor="#000000"
53+
android:pathData="M200,241.56L200,201.56" android:strokeAlpha="0.7"/>
54+
<path android:fillAlpha="0" android:fillColor="#FF000000"
55+
android:pathData="M200,241.56L200,201.56"
56+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
57+
<path android:fillAlpha="0.7" android:fillColor="#000000"
58+
android:pathData="M200,291.56L200,251.56" android:strokeAlpha="0.7"/>
59+
<path android:fillAlpha="0" android:fillColor="#FF000000"
60+
android:pathData="M200,291.56L200,251.56"
61+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
62+
<path android:fillAlpha="0.7" android:fillColor="#000000"
63+
android:pathData="M200,341.56L200,301.56" android:strokeAlpha="0.7"/>
64+
<path android:fillAlpha="0" android:fillColor="#FF000000"
65+
android:pathData="M200,341.56L200,301.56"
66+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
67+
<path android:fillAlpha="0.7" android:fillColor="#000000"
68+
android:pathData="M200,391.56L200,351.56" android:strokeAlpha="0.7"/>
69+
<path android:fillAlpha="0" android:fillColor="#FF000000"
70+
android:pathData="M200,391.56L200,351.56"
71+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
72+
<path android:fillAlpha="0.7" android:fillColor="#000000"
73+
android:pathData="M200,441.56L200,401.56" android:strokeAlpha="0.7"/>
74+
<path android:fillAlpha="0" android:fillColor="#FF000000"
75+
android:pathData="M200,441.56L200,401.56"
76+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
77+
<path android:fillAlpha="0.7" android:fillColor="#000000"
78+
android:pathData="M200,491.56L200,451.56" android:strokeAlpha="0.7"/>
79+
<path android:fillAlpha="0" android:fillColor="#FF000000"
80+
android:pathData="M200,491.56L200,451.56"
81+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
82+
<path android:fillAlpha="0.7" android:fillColor="#000000"
83+
android:pathData="M200,541.56L200,501.56" android:strokeAlpha="0.7"/>
84+
<path android:fillAlpha="0" android:fillColor="#FF000000"
85+
android:pathData="M200,541.56L200,501.56"
86+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
87+
<path android:fillAlpha="0.7" android:fillColor="#000000"
88+
android:pathData="M200,591.56L200,551.56" android:strokeAlpha="0.7"/>
89+
<path android:fillAlpha="0" android:fillColor="#FF000000"
90+
android:pathData="M200,591.56L200,551.56"
91+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
92+
<path android:fillAlpha="0.7" android:fillColor="#000000"
93+
android:pathData="M200,638.44L200,598.44" android:strokeAlpha="0.7"/>
94+
<path android:fillAlpha="0" android:fillColor="#FF000000"
95+
android:pathData="M200,638.44L200,598.44"
96+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
97+
<path android:fillAlpha="0" android:fillColor="#FF000000"
98+
android:pathData="M210,180L250,180" android:strokeAlpha="1"
99+
android:strokeColor="#000000" android:strokeWidth="3"/>
100+
<path android:fillAlpha="0" android:fillColor="#FF000000"
101+
android:pathData="M221.48,170L210,180" android:strokeAlpha="1"
102+
android:strokeColor="#000000" android:strokeWidth="3"/>
103+
<path android:fillAlpha="0" android:fillColor="#FF000000"
104+
android:pathData="M221.48,190L210,180" android:strokeAlpha="1"
105+
android:strokeColor="#000000" android:strokeWidth="3"/>
106+
<path android:fillAlpha="0" android:fillColor="#FF000000"
107+
android:pathData="M210,274.43L250,274.43"
108+
android:strokeAlpha="1" android:strokeColor="#000000" android:strokeWidth="3"/>
109+
<path android:fillAlpha="0" android:fillColor="#FF000000"
110+
android:pathData="M221.48,264.43L210,274.43"
111+
android:strokeAlpha="1" android:strokeColor="#000000" android:strokeWidth="3"/>
112+
<path android:fillAlpha="0" android:fillColor="#FF000000"
113+
android:pathData="M221.48,284.43L210,274.43"
114+
android:strokeAlpha="1" android:strokeColor="#000000" android:strokeWidth="3"/>
115+
<path android:fillAlpha="0.7" android:fillColor="#000000"
116+
android:pathData="M117.97,89L151.74,89.09L166,89.12" android:strokeAlpha="0.7"/>
117+
<path android:fillAlpha="0" android:fillColor="#FF000000"
118+
android:pathData="M117.97,89L151.74,89.09L166,89.12"
119+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
120+
<path android:fillAlpha="0.7" android:fillColor="#000000"
121+
android:pathData="M176,89L209.77,89.09L224.03,89.12" android:strokeAlpha="0.7"/>
122+
<path android:fillAlpha="0" android:fillColor="#FF000000"
123+
android:pathData="M176,89L209.77,89.09L224.03,89.12"
124+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
125+
<path android:fillAlpha="0.7" android:fillColor="#000000"
126+
android:pathData="M2.97,89L36.74,89.09L51,89.12" android:strokeAlpha="0.7"/>
127+
<path android:fillAlpha="0" android:fillColor="#FF000000"
128+
android:pathData="M2.97,89L36.74,89.09L51,89.12"
129+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
130+
<path android:fillAlpha="0.7" android:fillColor="#000000"
131+
android:pathData="M61,89L94.77,89.09L109.03,89.12" android:strokeAlpha="0.7"/>
132+
<path android:fillAlpha="0" android:fillColor="#FF000000"
133+
android:pathData="M61,89L94.77,89.09L109.03,89.12"
134+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
135+
<path android:fillAlpha="0.7" android:fillColor="#000000"
136+
android:pathData="M349.97,89L383.74,89.09L398,89.12" android:strokeAlpha="0.7"/>
137+
<path android:fillAlpha="0" android:fillColor="#FF000000"
138+
android:pathData="M349.97,89L383.74,89.09L398,89.12"
139+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
140+
<path android:fillAlpha="0.7" android:fillColor="#000000"
141+
android:pathData="M408,89L441.77,89.09L456.03,89.12" android:strokeAlpha="0.7"/>
142+
<path android:fillAlpha="0" android:fillColor="#FF000000"
143+
android:pathData="M408,89L441.77,89.09L456.03,89.12"
144+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
145+
<path android:fillAlpha="0.7" android:fillColor="#000000"
146+
android:pathData="M234.97,89L268.74,89.09L283,89.12" android:strokeAlpha="0.7"/>
147+
<path android:fillAlpha="0" android:fillColor="#FF000000"
148+
android:pathData="M234.97,89L268.74,89.09L283,89.12"
149+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
150+
<path android:fillAlpha="0.7" android:fillColor="#000000"
151+
android:pathData="M293,89L326.77,89.09L341.03,89.12" android:strokeAlpha="0.7"/>
152+
<path android:fillAlpha="0" android:fillColor="#FF000000"
153+
android:pathData="M293,89L326.77,89.09L341.03,89.12"
154+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
155+
<path android:fillAlpha="0.7" android:fillColor="#000000"
156+
android:pathData="M581.97,89L615.74,89.09L630,89.12" android:strokeAlpha="0.7"/>
157+
<path android:fillAlpha="0" android:fillColor="#FF000000"
158+
android:pathData="M581.97,89L615.74,89.09L630,89.12"
159+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
160+
<path android:fillAlpha="0.7" android:fillColor="#000000"
161+
android:pathData="M640,89L673.77,89.09L688.03,89.12" android:strokeAlpha="0.7"/>
162+
<path android:fillAlpha="0" android:fillColor="#FF000000"
163+
android:pathData="M640,89L673.77,89.09L688.03,89.12"
164+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
165+
<path android:fillAlpha="0.7" android:fillColor="#000000"
166+
android:pathData="M466.97,89L500.74,89.09L515,89.12" android:strokeAlpha="0.7"/>
167+
<path android:fillAlpha="0" android:fillColor="#FF000000"
168+
android:pathData="M466.97,89L500.74,89.09L515,89.12"
169+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
170+
<path android:fillAlpha="0.7" android:fillColor="#000000"
171+
android:pathData="M525,89L558.77,89.09L573.03,89.12" android:strokeAlpha="0.7"/>
172+
<path android:fillAlpha="0" android:fillColor="#FF000000"
173+
android:pathData="M525,89L558.77,89.09L573.03,89.12"
174+
android:strokeAlpha="0.7" android:strokeColor="#000000" android:strokeWidth="5"/>
175+
<path android:fillAlpha="0" android:fillColor="#FF000000"
176+
android:pathData="M370.22,100.01L369.45,140"
177+
android:strokeAlpha="1" android:strokeColor="#000000" android:strokeWidth="3"/>
178+
<path android:fillAlpha="0" android:fillColor="#FF000000"
179+
android:pathData="M380,111.67L370.22,100.01"
180+
android:strokeAlpha="1" android:strokeColor="#000000" android:strokeWidth="3"/>
181+
<path android:fillAlpha="0" android:fillColor="#FF000000"
182+
android:pathData="M360,111.29L370.22,100.01"
183+
android:strokeAlpha="1" android:strokeColor="#000000" android:strokeWidth="3"/>
184+
<path android:fillAlpha="0" android:fillColor="#FF000000"
185+
android:pathData="M550.22,97L549.45,137" android:strokeAlpha="1"
186+
android:strokeColor="#000000" android:strokeWidth="3"/>
187+
<path android:fillAlpha="0" android:fillColor="#FF000000"
188+
android:pathData="M560,108.67L550.22,97" android:strokeAlpha="1"
189+
android:strokeColor="#000000" android:strokeWidth="3"/>
190+
<path android:fillAlpha="0" android:fillColor="#FF000000"
191+
android:pathData="M540,108.28L550.22,97" android:strokeAlpha="1"
192+
android:strokeColor="#000000" android:strokeWidth="3"/>
193+
</vector>

app/src/main/res/layout/.README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ Each layout must also be named based on sub features. Use following convention t
2828
* Prefix: **`_TBD_`** | Chain Style
2929
* Prefix: **`_TBD_`** | Weighted chains
3030
* Prefix: **`_TBD_`** | Margins and chains _(Added in 1.1)_
31-
- Prefix: **`_TBD_`** | Virtual Helpers objects
32-
* Prefix: **`_TBD_`** | Guideline
33-
* Prefix: **`_TBD_`** | Barrier
34-
* Prefix: **`_TBD_`** | Group
31+
- Prefix: **`_virtual_helper_`** | Virtual Helpers objects
32+
* Prefix: **`_guideline_`** | Guideline
33+
* Prefix: **`_barrier_`** | Barrier
34+
* Prefix: **`_group_`** | Group
3535
- Prefix: **`_TBD_`** | Optimizer _(Added in 1.1)_
3636

3737
> NOTE: The list of feature set is taken from original [readme](https://github.com/amardeshbd/android-constraint-layout-cheatsheet/blob/master/README.md).

0 commit comments

Comments
 (0)