├── app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ ├── strings.xml │ │ │ ├── attrs-grouping-tag-view.xml │ │ │ ├── colors.xml │ │ │ ├── attrs-progress-bar.xml │ │ │ ├── styles.xml │ │ │ └── strings-xlistview.xml │ │ ├── drawable │ │ │ └── image.jpg │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── drawable-xxhdpi │ │ │ ├── xlistview_arrow.png │ │ │ ├── cl_infinite_loading_view_bg.png │ │ │ └── cl_infinite_loading_view_src.png │ │ └── layout │ │ │ ├── xlistview_item.xml │ │ │ ├── activity_circle_view.xml │ │ │ ├── activity_wave_view.xml │ │ │ ├── activity_entrance.xml │ │ │ ├── activity_shyaringan_view.xml │ │ │ ├── activity_stamp_view.xml │ │ │ ├── activity_md_like_link_text_view.xml │ │ │ ├── item_grouping_tag_view.xml │ │ │ ├── activity_percentage_circle_view.xml │ │ │ ├── activity_cl_infinite_loading_view.xml │ │ │ ├── activity_iqiyi_infinite_loading_view.xml │ │ │ ├── activity_radar_infinite_loading_view.xml │ │ │ ├── activity_sonar_infinite_loading_view.xml │ │ │ ├── activity_horizontal_scroll_view_ex.xml │ │ │ ├── activity_handle_view.xml │ │ │ ├── activity_progress_bar.xml │ │ │ ├── activity_collapsible_view.xml │ │ │ ├── activity_pattern_view.xml │ │ │ ├── activity_grouping_tag_view.xml │ │ │ ├── item_entrance.xml │ │ │ ├── item_index.xml │ │ │ ├── activity_city_list.xml │ │ │ ├── activity_uvg_view.xml │ │ │ ├── xlistview_footer.xml │ │ │ ├── item_city.xml │ │ │ ├── item_collapsible_view.xml │ │ │ ├── refresh_footer.xml │ │ │ ├── refresh_header.xml │ │ │ ├── xlistview_header.xml │ │ │ └── activity_using_coordinator_layout.xml │ │ ├── java │ │ └── com │ │ │ └── hayukleung │ │ │ ├── view │ │ │ ├── MDLikeLinkTextView │ │ │ │ ├── MDLLException.java │ │ │ │ ├── MDLikeLinkRegex.java │ │ │ │ ├── MDLikeLinkTextViewActivity.java │ │ │ │ ├── MDLikeLinkString.java │ │ │ │ └── MDLikeLinkTextView.java │ │ │ ├── GroupingTagView │ │ │ │ ├── ITag.java │ │ │ │ ├── Tag.java │ │ │ │ ├── TagView.java │ │ │ │ ├── ITagLine.java │ │ │ │ ├── GroupingTagViewAdapter.java │ │ │ │ ├── GroupingTagViewActivity.java │ │ │ │ └── GroupingTagView.java │ │ │ ├── ProgressBar │ │ │ │ ├── ProgressBarActivity.java │ │ │ │ └── ProgressBar.java │ │ │ ├── UsingViewGroup │ │ │ │ ├── HorizontalScrollViewExActivity.java │ │ │ │ ├── UVGViewActivity.java │ │ │ │ ├── AutoSizingFlowLayoutActivity.java │ │ │ │ ├── AutoSizingUtil.java │ │ │ │ ├── FlowLayoutActivity.java │ │ │ │ ├── HorizontalScrollViewEx.java │ │ │ │ └── UVGView.java │ │ │ ├── WaveView │ │ │ │ ├── WaveViewActivity.java │ │ │ │ └── WaveView.java │ │ │ ├── StampView │ │ │ │ ├── StampViewActivity.java │ │ │ │ └── StampView.java │ │ │ ├── BezierCurveView │ │ │ │ ├── BezierInfiniteLoadingViewActivity.java │ │ │ │ ├── BezierCurveViewActivity.java │ │ │ │ ├── BezierCurveView.java │ │ │ │ └── BezierInfiniteLoadingView.java │ │ │ ├── CircleView │ │ │ │ ├── CircleViewActivity.java │ │ │ │ └── CircleView.java │ │ │ ├── ShyaringanView │ │ │ │ └── ShyaringanViewActivity.java │ │ │ ├── CLInfiniteLoadingView │ │ │ │ └── CLInfiniteLoadingViewActivity.java │ │ │ ├── IQiYiInfiniteLoadingView │ │ │ │ ├── IQiYiInfiniteLoadingViewActivity.java │ │ │ │ └── IQiYiInfiniteLoadingView.java │ │ │ ├── RadarInfiniteLoadingView │ │ │ │ ├── RadarInfiniteLoadingViewActivity.java │ │ │ │ └── RadarInfiniteLoadingView.java │ │ │ ├── SonarInfiniteLoadingView │ │ │ │ └── SonarInfiniteLoadingViewActivity.java │ │ │ ├── PatternView │ │ │ │ └── PatternViewActivity.java │ │ │ ├── HandleView │ │ │ │ ├── HandleViewTouchListener.java │ │ │ │ ├── HandleViewActivity.java │ │ │ │ └── HandleView.java │ │ │ ├── BaseViewGroup.java │ │ │ ├── CollapsibleView │ │ │ │ └── UsingCollapsibleView │ │ │ │ │ ├── Zone.java │ │ │ │ │ ├── PausedHandlerScheduler.java │ │ │ │ │ ├── PausedHandler.java │ │ │ │ │ └── UsingCollapsibleViewActivity.java │ │ │ ├── BaseView.java │ │ │ ├── Percentage │ │ │ │ ├── PercentageCircleViewActivity.java │ │ │ │ └── PercentageCircleView.java │ │ │ ├── CityList │ │ │ │ ├── City.java │ │ │ │ ├── CityListAdapter.java │ │ │ │ ├── IndexBar.java │ │ │ │ └── CityListActivity.java │ │ │ └── xlistview │ │ │ │ ├── XListViewFooter.java │ │ │ │ └── XListViewHeader.java │ │ │ ├── xfermode │ │ │ ├── PorterDuffXfermodeViewActivity.java │ │ │ ├── UsingColorMatrixColorFilterViewActivity.java │ │ │ ├── UsingPorterDuffColorFilterViewActivity.java │ │ │ ├── XfermodeMainActivity.java │ │ │ ├── UsingPorterDuffColorFilterView.java │ │ │ └── UsingColorMatrixColorFilterView.java │ │ │ ├── using │ │ │ ├── UsingCoordinatorLayoutActivity.java │ │ │ ├── UsingMainActivity.java │ │ │ └── DrawerBehavior.java │ │ │ ├── App.java │ │ │ ├── Entrance.java │ │ │ ├── EntranceActivity.java │ │ │ ├── BaseEntranceActivity.java │ │ │ ├── EntranceAdapter.java │ │ │ └── Utils │ │ │ └── Screen.java │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── img ├── HandleView.gif ├── StampView.jpg ├── Coordinator.png ├── BezierCurveView.gif ├── ShyaringanView.gif ├── CLInfiniteLoadingView.gif ├── PorterDuffXfermode-Form.png ├── PorterDuffXfermodeView.jpg ├── BezierInfiniteLoadingView.gif ├── IQiYiInfiniteLoadingView.gif ├── RadarInfiniteLoadingView.gif └── SonarInfiniteLoadingView.gif ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── gradlew.bat ├── README.md └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /img/HandleView.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/HandleView.gif -------------------------------------------------------------------------------- /img/StampView.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/StampView.jpg -------------------------------------------------------------------------------- /img/Coordinator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/Coordinator.png -------------------------------------------------------------------------------- /img/BezierCurveView.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/BezierCurveView.gif -------------------------------------------------------------------------------- /img/ShyaringanView.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/ShyaringanView.gif -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | View 3 | 4 | -------------------------------------------------------------------------------- /img/CLInfiniteLoadingView.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/CLInfiniteLoadingView.gif -------------------------------------------------------------------------------- /img/PorterDuffXfermode-Form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/PorterDuffXfermode-Form.png -------------------------------------------------------------------------------- /img/PorterDuffXfermodeView.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/PorterDuffXfermodeView.jpg -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /img/BezierInfiniteLoadingView.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/BezierInfiniteLoadingView.gif -------------------------------------------------------------------------------- /img/IQiYiInfiniteLoadingView.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/IQiYiInfiniteLoadingView.gif -------------------------------------------------------------------------------- /img/RadarInfiniteLoadingView.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/RadarInfiniteLoadingView.gif -------------------------------------------------------------------------------- /img/SonarInfiniteLoadingView.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/img/SonarInfiniteLoadingView.gif -------------------------------------------------------------------------------- /app/src/main/res/drawable/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/app/src/main/res/drawable/image.jpg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | .idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/xlistview_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/app/src/main/res/drawable-xxhdpi/xlistview_arrow.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/cl_infinite_loading_view_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/app/src/main/res/drawable-xxhdpi/cl_infinite_loading_view_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/cl_infinite_loading_view_src.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hayukleung/View/HEAD/app/src/main/res/drawable-xxhdpi/cl_infinite_loading_view_src.png -------------------------------------------------------------------------------- /app/src/main/res/values/attrs-grouping-tag-view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Mar 22 15:38:15 CST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/hayukleung/view/MDLikeLinkTextView/MDLLException.java: -------------------------------------------------------------------------------- 1 | package com.hayukleung.view.MDLikeLinkTextView; 2 | 3 | /** 4 | * View 5 | * com.hayukleung.view.MDLikeLinkTextView 6 | * MDLLException.java 7 | * 8 | * by hayukleung 9 | * at 2017-01-24 17:53 10 | */ 11 | 12 | public class MDLLException extends RuntimeException { 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/xlistview_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs-progress-bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_circle_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_wave_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/hayukleung/xfermode/PorterDuffXfermodeViewActivity.java: -------------------------------------------------------------------------------- 1 | package com.hayukleung.xfermode; 2 | 3 | import android.os.Bundle; 4 | import androidx.appcompat.app.AppCompatActivity; 5 | 6 | public class PorterDuffXfermodeViewActivity extends AppCompatActivity { 7 | 8 | @Override protected void onCreate(Bundle savedInstanceState) { 9 | super.onCreate(savedInstanceState); 10 | setContentView(new PorterDuffXfermodeView(this)); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_entrance.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_shyaringan_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/hayukleung/view/GroupingTagView/ITag.java: -------------------------------------------------------------------------------- 1 | package com.hayukleung.view.GroupingTagView; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * View 7 | * com.hayukleung.view.UsingViewGroup 8 | * ITag.java 9 | * 10 | * by hayukleung 11 | * at 2017-03-23 16:49 12 | */ 13 | 14 | public interface ITag extends Serializable, Comparable { 15 | 16 | String getContent(); 17 | 18 | int getLength(); 19 | 20 | int getWidthWithMargin(); 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/hayukleung/xfermode/UsingColorMatrixColorFilterViewActivity.java: -------------------------------------------------------------------------------- 1 | package com.hayukleung.xfermode; 2 | 3 | import android.os.Bundle; 4 | import androidx.appcompat.app.AppCompatActivity; 5 | 6 | public class UsingColorMatrixColorFilterViewActivity extends AppCompatActivity { 7 | 8 | @Override protected void onCreate(Bundle savedInstanceState) { 9 | super.onCreate(savedInstanceState); 10 | setContentView(new UsingColorMatrixColorFilterView(this)); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/hayukleung/xfermode/UsingPorterDuffColorFilterViewActivity.java: -------------------------------------------------------------------------------- 1 | package com.hayukleung.xfermode; 2 | 3 | import android.os.Bundle; 4 | import androidx.appcompat.app.AppCompatActivity; 5 | 6 | public class UsingPorterDuffColorFilterViewActivity extends AppCompatActivity { 7 | 8 | @Override protected void onCreate(Bundle savedInstanceState) { 9 | super.onCreate(savedInstanceState); 10 | setContentView(new UsingPorterDuffColorFilterView(this)); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_stamp_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_md_like_link_text_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_grouping_tag_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings-xlistview.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 下拉刷新 5 | 松开刷新数据 6 | 正在加载… 7 | 上次更新时间: 8 | 查看更多 9 | 松开载入更多 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_percentage_circle_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_cl_infinite_loading_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_iqiyi_infinite_loading_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_radar_infinite_loading_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_sonar_infinite_loading_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_horizontal_scroll_view_ex.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/hayukleung/view/ProgressBar/ProgressBarActivity.java: -------------------------------------------------------------------------------- 1 | package com.hayukleung.view.ProgressBar; 2 | 3 | import android.os.Bundle; 4 | import androidx.annotation.Nullable; 5 | import androidx.appcompat.app.AppCompatActivity; 6 | 7 | import com.hayukleung.view.R; 8 | 9 | public class ProgressBarActivity extends AppCompatActivity { 10 | 11 | @Override 12 | protected void onCreate(@Nullable Bundle savedInstanceState) { 13 | super.onCreate(savedInstanceState); 14 | setContentView(R.layout.activity_progress_bar); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/hayukleung/view/UsingViewGroup/HorizontalScrollViewExActivity.java: -------------------------------------------------------------------------------- 1 | package com.hayukleung.view.UsingViewGroup; 2 | 3 | import android.os.Bundle; 4 | import androidx.annotation.Nullable; 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import com.hayukleung.view.R; 7 | 8 | public class HorizontalScrollViewExActivity extends AppCompatActivity { 9 | 10 | @Override protected void onCreate(@Nullable Bundle savedInstanceState) { 11 | super.onCreate(savedInstanceState); 12 | setContentView(R.layout.activity_horizontal_scroll_view_ex); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_handle_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_progress_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/hayukleung/view/WaveView/WaveViewActivity.java: -------------------------------------------------------------------------------- 1 | package com.hayukleung.view.WaveView; 2 | 3 | import android.os.Bundle; 4 | import androidx.annotation.Nullable; 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import com.hayukleung.view.R; 7 | 8 | /** 9 | * View 10 | * com.hayukleung.view.WaveView 11 | * WaveViewActivity.java 12 | * 13 | * by hayukleung 14 | * at 2017-05-22 22:22 15 | */ 16 | 17 | public class WaveViewActivity extends AppCompatActivity { 18 | 19 | @Override protected void onCreate(@Nullable Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.activity_wave_view); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/hayukleung/view/StampView/StampViewActivity.java: -------------------------------------------------------------------------------- 1 | package com.hayukleung.view.StampView; 2 | 3 | import android.os.Bundle; 4 | import androidx.annotation.Nullable; 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import com.hayukleung.view.R; 7 | 8 | /** 9 | * View 10 | * com.hayukleung.view.StampView 11 | * StampViewActivity.java 12 | * 13 | * by hayukleung 14 | * at 2016-12-27 16:32 15 | */ 16 | 17 | public class StampViewActivity extends AppCompatActivity { 18 | 19 | @Override protected void onCreate(@Nullable Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.activity_stamp_view); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/hayukleung/view/UsingViewGroup/UVGViewActivity.java: -------------------------------------------------------------------------------- 1 | package com.hayukleung.view.UsingViewGroup; 2 | 3 | import android.os.Bundle; 4 | import androidx.annotation.Nullable; 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import com.hayukleung.view.R; 7 | 8 | /** 9 | * View 10 | * com.hayukleung.view.UsingViewGroup 11 | * UVGViewActivity.java 12 | * 13 | * by hayukleung 14 | * at 2017-03-23 15:33 15 | */ 16 | 17 | public class UVGViewActivity extends AppCompatActivity { 18 | 19 | @Override protected void onCreate(@Nullable Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | 22 | setContentView(R.layout.activity_uvg_view); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_collapsible_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_pattern_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 |