From ed897a56c0ad4e3b4cbc24b89f0567efda1ed5a2 Mon Sep 17 00:00:00 2001 From: FANMing <178357820@qq.com> Date: Mon, 20 Mar 2017 15:03:27 +0800 Subject: [PATCH] first commit --- .gitignore | 2 + README.md | 193 ++++- app/.gitignore | 1 + app/build.gradle | 27 + app/proguard-rules.pro | 17 + app/src/main/AndroidManifest.xml | 21 + .../statelayoutdemo/SampleActivity.java | 129 ++++ app/src/main/res/drawable/rounded_corners.xml | 6 + app/src/main/res/layout/activity_sample.xml | 101 +++ app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10486 bytes app/src/main/res/values-en/strings.xml | 9 + app/src/main/res/values-w820dp/dimens.xml | 6 + app/src/main/res/values/colors.xml | 6 + app/src/main/res/values/dimens.xml | 5 + app/src/main/res/values/strings.xml | 8 + app/src/main/res/values/styles.xml | 11 + build.gradle | 23 + gradle.properties | 24 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 160 +++++ gradlew.bat | 90 +++ library/.gitignore | 44 ++ library/build.gradle | 22 + library/proguard-rules.pro | 17 + library/src/main/AndroidManifest.xml | 8 + .../com/fingdo/statelayout/StateLayout.java | 678 ++++++++++++++++++ .../anim/FadeScaleViewAnimProvider.java | 47 ++ .../anim/FadeViewAnimProvider.java | 36 + .../statelayout/anim/ViewAnimProvider.java | 21 + .../com/fingdo/statelayout/bean/BaseItem.java | 33 + .../fingdo/statelayout/bean/EmptyItem.java | 20 + .../fingdo/statelayout/bean/ErrorItem.java | 20 + .../fingdo/statelayout/bean/LoadingItem.java | 19 + .../fingdo/statelayout/bean/LoginItem.java | 20 + .../statelayout/bean/NoNetworkItem.java | 20 + .../fingdo/statelayout/bean/TimeOutItem.java | 20 + .../statelayout/helper/AnimationHelper.java | 86 +++ .../statelayout/helper/LayoutHelper.java | 257 +++++++ .../fingdo/statelayout/helper/ViewHelper.java | 65 ++ .../fingdo/statelayout/holder/BaseHolder.java | 19 + .../statelayout/holder/EmptyViewHolder.java | 20 + .../statelayout/holder/ErrorViewHolder.java | 19 + .../statelayout/holder/LoadingViewHolder.java | 21 + .../statelayout/holder/LoginViewHolder.java | 19 + .../holder/NoNetworkViewHolder.java | 19 + .../statelayout/holder/TimeOutViewHolder.java | 19 + .../main/res/drawable-hdpi/ic_state_empty.png | Bin 0 -> 1166 bytes .../main/res/drawable-hdpi/ic_state_error.png | Bin 0 -> 1012 bytes .../res/drawable-hdpi/ic_state_loading.png | Bin 0 -> 2532 bytes .../main/res/drawable-hdpi/ic_state_login.png | Bin 0 -> 1725 bytes .../res/drawable-hdpi/ic_state_no_network.png | Bin 0 -> 1560 bytes .../res/drawable-hdpi/ic_state_time_out.png | Bin 0 -> 1706 bytes .../main/res/drawable-mdpi/ic_state_empty.png | Bin 0 -> 874 bytes .../main/res/drawable-mdpi/ic_state_error.png | Bin 0 -> 1306 bytes .../res/drawable-mdpi/ic_state_loading.png | Bin 0 -> 2185 bytes .../main/res/drawable-mdpi/ic_state_login.png | Bin 0 -> 1383 bytes .../res/drawable-mdpi/ic_state_no_network.png | Bin 0 -> 1579 bytes .../res/drawable-mdpi/ic_state_time_out.png | Bin 0 -> 1537 bytes .../res/drawable-xhdpi/ic_state_empty.png | Bin 0 -> 1625 bytes .../res/drawable-xhdpi/ic_state_error.png | Bin 0 -> 1392 bytes .../res/drawable-xhdpi/ic_state_loading.png | Bin 0 -> 3444 bytes .../res/drawable-xhdpi/ic_state_login.png | Bin 0 -> 2371 bytes .../drawable-xhdpi/ic_state_no_network.png | Bin 0 -> 1943 bytes .../res/drawable-xhdpi/ic_state_time_out.png | Bin 0 -> 2305 bytes .../res/drawable-xxhdpi/ic_state_empty.png | Bin 0 -> 2549 bytes .../res/drawable-xxhdpi/ic_state_error.png | Bin 0 -> 2197 bytes .../res/drawable-xxhdpi/ic_state_loading.png | Bin 0 -> 5437 bytes .../res/drawable-xxhdpi/ic_state_login.png | Bin 0 -> 3691 bytes .../drawable-xxhdpi/ic_state_no_network.png | Bin 0 -> 3167 bytes .../res/drawable-xxhdpi/ic_state_time_out.png | Bin 0 -> 3653 bytes .../res/drawable-xxxhdpi/ic_state_empty.png | Bin 0 -> 3652 bytes .../res/drawable-xxxhdpi/ic_state_error.png | Bin 0 -> 3198 bytes .../res/drawable-xxxhdpi/ic_state_loading.png | Bin 0 -> 7625 bytes .../res/drawable-xxxhdpi/ic_state_login.png | Bin 0 -> 5103 bytes .../drawable-xxxhdpi/ic_state_no_network.png | Bin 0 -> 4468 bytes .../drawable-xxxhdpi/ic_state_time_out.png | Bin 0 -> 5069 bytes library/src/main/res/drawable/bg_loading.xml | 5 + library/src/main/res/layout/layout_empty.xml | 31 + library/src/main/res/layout/layout_error.xml | 40 ++ .../src/main/res/layout/layout_loading.xml | 30 + library/src/main/res/layout/layout_login.xml | 38 + .../src/main/res/layout/layout_no_network.xml | 40 ++ .../src/main/res/layout/layout_time_out.xml | 40 ++ library/src/main/res/values-en/strings.xml | 11 + library/src/main/res/values/attr.xml | 30 + library/src/main/res/values/color.xml | 10 + library/src/main/res/values/dimen.xml | 10 + library/src/main/res/values/strings.xml | 13 + settings.gradle | 1 + 94 files changed, 2711 insertions(+), 2 deletions(-) create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/com/fingdo/statelayoutdemo/SampleActivity.java create mode 100644 app/src/main/res/drawable/rounded_corners.xml create mode 100644 app/src/main/res/layout/activity_sample.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/values-en/strings.xml create mode 100644 app/src/main/res/values-w820dp/dimens.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/dimens.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 library/.gitignore create mode 100644 library/build.gradle create mode 100644 library/proguard-rules.pro create mode 100644 library/src/main/AndroidManifest.xml create mode 100644 library/src/main/java/com/fingdo/statelayout/StateLayout.java create mode 100755 library/src/main/java/com/fingdo/statelayout/anim/FadeScaleViewAnimProvider.java create mode 100755 library/src/main/java/com/fingdo/statelayout/anim/FadeViewAnimProvider.java create mode 100755 library/src/main/java/com/fingdo/statelayout/anim/ViewAnimProvider.java create mode 100644 library/src/main/java/com/fingdo/statelayout/bean/BaseItem.java create mode 100644 library/src/main/java/com/fingdo/statelayout/bean/EmptyItem.java create mode 100644 library/src/main/java/com/fingdo/statelayout/bean/ErrorItem.java create mode 100644 library/src/main/java/com/fingdo/statelayout/bean/LoadingItem.java create mode 100644 library/src/main/java/com/fingdo/statelayout/bean/LoginItem.java create mode 100644 library/src/main/java/com/fingdo/statelayout/bean/NoNetworkItem.java create mode 100644 library/src/main/java/com/fingdo/statelayout/bean/TimeOutItem.java create mode 100644 library/src/main/java/com/fingdo/statelayout/helper/AnimationHelper.java create mode 100644 library/src/main/java/com/fingdo/statelayout/helper/LayoutHelper.java create mode 100644 library/src/main/java/com/fingdo/statelayout/helper/ViewHelper.java create mode 100644 library/src/main/java/com/fingdo/statelayout/holder/BaseHolder.java create mode 100644 library/src/main/java/com/fingdo/statelayout/holder/EmptyViewHolder.java create mode 100644 library/src/main/java/com/fingdo/statelayout/holder/ErrorViewHolder.java create mode 100644 library/src/main/java/com/fingdo/statelayout/holder/LoadingViewHolder.java create mode 100644 library/src/main/java/com/fingdo/statelayout/holder/LoginViewHolder.java create mode 100644 library/src/main/java/com/fingdo/statelayout/holder/NoNetworkViewHolder.java create mode 100644 library/src/main/java/com/fingdo/statelayout/holder/TimeOutViewHolder.java create mode 100644 library/src/main/res/drawable-hdpi/ic_state_empty.png create mode 100644 library/src/main/res/drawable-hdpi/ic_state_error.png create mode 100644 library/src/main/res/drawable-hdpi/ic_state_loading.png create mode 100644 library/src/main/res/drawable-hdpi/ic_state_login.png create mode 100644 library/src/main/res/drawable-hdpi/ic_state_no_network.png create mode 100644 library/src/main/res/drawable-hdpi/ic_state_time_out.png create mode 100644 library/src/main/res/drawable-mdpi/ic_state_empty.png create mode 100644 library/src/main/res/drawable-mdpi/ic_state_error.png create mode 100644 library/src/main/res/drawable-mdpi/ic_state_loading.png create mode 100644 library/src/main/res/drawable-mdpi/ic_state_login.png create mode 100644 library/src/main/res/drawable-mdpi/ic_state_no_network.png create mode 100644 library/src/main/res/drawable-mdpi/ic_state_time_out.png create mode 100644 library/src/main/res/drawable-xhdpi/ic_state_empty.png create mode 100644 library/src/main/res/drawable-xhdpi/ic_state_error.png create mode 100644 library/src/main/res/drawable-xhdpi/ic_state_loading.png create mode 100644 library/src/main/res/drawable-xhdpi/ic_state_login.png create mode 100644 library/src/main/res/drawable-xhdpi/ic_state_no_network.png create mode 100644 library/src/main/res/drawable-xhdpi/ic_state_time_out.png create mode 100644 library/src/main/res/drawable-xxhdpi/ic_state_empty.png create mode 100644 library/src/main/res/drawable-xxhdpi/ic_state_error.png create mode 100644 library/src/main/res/drawable-xxhdpi/ic_state_loading.png create mode 100644 library/src/main/res/drawable-xxhdpi/ic_state_login.png create mode 100644 library/src/main/res/drawable-xxhdpi/ic_state_no_network.png create mode 100644 library/src/main/res/drawable-xxhdpi/ic_state_time_out.png create mode 100644 library/src/main/res/drawable-xxxhdpi/ic_state_empty.png create mode 100644 library/src/main/res/drawable-xxxhdpi/ic_state_error.png create mode 100644 library/src/main/res/drawable-xxxhdpi/ic_state_loading.png create mode 100644 library/src/main/res/drawable-xxxhdpi/ic_state_login.png create mode 100644 library/src/main/res/drawable-xxxhdpi/ic_state_no_network.png create mode 100644 library/src/main/res/drawable-xxxhdpi/ic_state_time_out.png create mode 100644 library/src/main/res/drawable/bg_loading.xml create mode 100644 library/src/main/res/layout/layout_empty.xml create mode 100644 library/src/main/res/layout/layout_error.xml create mode 100644 library/src/main/res/layout/layout_loading.xml create mode 100644 library/src/main/res/layout/layout_login.xml create mode 100644 library/src/main/res/layout/layout_no_network.xml create mode 100644 library/src/main/res/layout/layout_time_out.xml create mode 100644 library/src/main/res/values-en/strings.xml create mode 100644 library/src/main/res/values/attr.xml create mode 100644 library/src/main/res/values/color.xml create mode 100644 library/src/main/res/values/dimen.xml create mode 100644 library/src/main/res/values/strings.xml create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore index f6b286c..0cd2c94 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,8 @@ bin/ gen/ out/ +.idea/ + # Gradle files .gradle/ build/ diff --git a/README.md b/README.md index bb6264c..5d530bf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,191 @@ -# stateLayout -a quick switch layout +# StateLayout用法 + +## 演示 + +![演示图](http://upload-images.jianshu.io/upload_images/1967808-08bf36a152a8ded2.gif) + + +## 使用方法 +### 引入布局 + +用法与SrcollView一致,只允许一个`根布局` + +``` + + + +``` + +### 布局设置图标和文字 +``` + + + + + + + + + + + + + + + + + + + + + + + + +``` + +#### 示例: + +``` + + +``` + +### 代码提前设置图标和文字 +``` +//type为StateLayout的固定Type变量 +public static final int ERROR = 1; +public static final int EMPTY = 2; +public static final int TIMEOUT = 3; +public static final int NOT_NETWORK = 4; +public static final int LOADING = 5; +public static final int LOGIN = 6; +``` +![image](http://upload-images.jianshu.io/upload_images/1967808-4e6be6b3e218fece.png) + +### 代码设置显示布局 +``` +//展示没有网络的界面 +stateLayout.showNoNetworkView(); +//展示超时的界面 +stateLayout.showTimeoutView(); +//展示空数据的界面 +stateLayout.showEmptyView(); +//展示错误的界面 +stateLayout.showErrorView(); +//展示登录的界面 +stateLayout.showLoginView(); + +//如下图所示 +1,直接显示 +2,设置提示stringId和图片Id显示 +3,设置提示stringId显示 +4,设置提示字符串现实 +5,设置提示字符串和图片Id显示 +``` +![image](http://upload-images.jianshu.io/upload_images/1967808-eb1e0af3ea1d7913.png) +``` +//显示加载界面 +stateLayout.showLoadingView(); + +1,直接显示 +2,设置提示stringId显示 +3,设置提示字符串现实 +4,设置自定义加载View现实,如: + 1)进度条 + 2)显示gif的View + 3)自定义布局View + +``` +![image](http://upload-images.jianshu.io/upload_images/1967808-878baa6fd9576469.png) +``` +//显示自定义界面 +stateLayout.showCustomView(); +``` +设置替换成自定义的界面: +![image](http://upload-images.jianshu.io/upload_images/1967808-f26b6a9925917e9d.png) + + +### 设置切换界面动画 +动画默认为`false`,如果需要开启动画,请调用 + +``` +//开启动画 +stateLayout.setUseAnimation(true); +``` +如果用户不设置自定义动画,一般为默认的`渐隐缩放`动画 +如果用户需要设置动画,请调用 + +``` +//设置动画 +stateLayout.setViewSwitchAnimProvider(new FadeScaleViewAnimProvider()); +``` +`stateLayout`自定义了两种动画 + +``` +//渐隐缩放,渐显放大动画 +FadeScaleViewAnimProvider +//渐隐渐显动画 +FadeViewAnimProvider +``` +用户如需自定义动画样式,请实现`ViewAnimProvider`接口 + +重写`showAnimation`和`hideAnimation`方法。 + +``` +//以FadeViewAnimProvider为例 +public class FadeViewAnimProvider implements ViewAnimProvider { + + @Override + public Animation showAnimation() { + Animation animation = new AlphaAnimation(0.0f,1.0f); + animation.setDuration(200); + animation.setInterpolator(new DecelerateInterpolator()); + return animation; + } + + @Override + public Animation hideAnimation() { + Animation animation = new AlphaAnimation(1.0f,0.0f); + animation.setDuration(200); + animation.setInterpolator(new AccelerateDecelerateInterpolator()); + return animation; + } + +} +``` + + +### 监听刷新和登录点击 +请实现`StateLayout`里面的`OnViewRefreshListener`接口。 + +重写两个方法: + +``` +//刷新界面 +void refreshClick(); + +//登录点击 +void loginClick(); +``` + + +感谢[lufficc](https://github.com/lufficc/StateLayout)提供的思路 \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..edf9e2f --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,27 @@ +apply plugin: 'com.android.application' + +android { + buildToolsVersion BUILD_TOOLS_VERSION + compileSdkVersion Integer.parseInt(COMPILE_SDK_VERSION) + + defaultConfig { + applicationId "com.fingdo.statelayoutdemo" + minSdkVersion Integer.parseInt(MIN_SDK_VERSION) + targetSdkVersion Integer.parseInt(TARGET_SDK_VERSION) + versionCode 1 + versionName "1.0" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + compile APPCOMPAT_LIB + compile project(':library') +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..b82e652 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/fingdo/Library/Android/sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..45b08dd --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/fingdo/statelayoutdemo/SampleActivity.java b/app/src/main/java/com/fingdo/statelayoutdemo/SampleActivity.java new file mode 100644 index 0000000..882c7b9 --- /dev/null +++ b/app/src/main/java/com/fingdo/statelayoutdemo/SampleActivity.java @@ -0,0 +1,129 @@ +package com.fingdo.statelayoutdemo; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.widget.Toast; + +import com.fingdo.statelayout.StateLayout; + + +/** + *
+ *     author : fingdo
+ *     e-mail : fingdo@qq.com
+ *     time   : 2017/03/10
+ *     desc   : 测试StateLayout
+ *     version: 1.0
+ * 
+ */ + +public class SampleActivity extends AppCompatActivity implements View.OnClickListener { + + + private StateLayout stateLayout; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sample); + + stateLayout = (StateLayout) findViewById(R.id.state_layout); + + + //提前设置 + //设置空数据提示文字 + //stateLayout.setTipText(StateLayout.EMPTY, "empty tip text"); + //stateLayout.setTipText(StateLayout.EMPTY, R.string.empty_tip); + //空数据提示图标 + //stateLayout.setTipImg(StateLayout.EMPTY, R.drawable.ic_state_empty); + //stateLayout.setTipImg(StateLayout.EMPTY, getResources().getDrawable(R.drawable.ic_state_empty)); + + + //展示内容的界面 +// stateLayout.showContentView(); + //展示加载中的界面 +// stateLayout.showLoadingView(); + + //展示没有网络的界面 +// stateLayout.showNoNetworkView(); + //展示超时的界面 +// stateLayout.showTimeoutView(); + //展示空数据的界面 +// stateLayout.showEmptyView(); + //展示错误的界面 +// stateLayout.showErrorView(); + //展示登录的界面 +// stateLayout.showLoginView(); + + + //显示加载界面 +// stateLayout.showLoadingView(); + + //显示自定义界面 +// stateLayout.showCustomView(); + + + + + + stateLayout.setUseAnimation(true); +// stateLayout.setViewSwitchAnimProvider(new FadeScaleViewAnimProvider()); + stateLayout.setRefreshListener(new StateLayout.OnViewRefreshListener() { + @Override + public void refreshClick() { + Toast.makeText(SampleActivity.this, R.string.toast_refresh, Toast.LENGTH_SHORT).show(); + } + + @Override + public void loginClick() { + Toast.makeText(SampleActivity.this, R.string.toast_sign_in, Toast.LENGTH_SHORT).show(); + } + }); + + findViewById(R.id.btn_content).setOnClickListener(this); + findViewById(R.id.btn_empty).setOnClickListener(this); + findViewById(R.id.btn_error).setOnClickListener(this); + findViewById(R.id.btn_loading).setOnClickListener(this); + findViewById(R.id.btn_time_out).setOnClickListener(this); + findViewById(R.id.btn_not_network).setOnClickListener(this); + findViewById(R.id.btn_login).setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.btn_content: + stateLayout.showContentView(); +// stateLayout.setTipText(StateLayout.EMPTY, "12345"); +// stateLayout.setTipImg(StateLayout.EMPTY, R.mipmap.ic_launcher); + break; + case R.id.btn_empty: + stateLayout.showEmptyView(); +// stateLayout.setTipText(StateLayout.ERROR, "12345"); +// stateLayout.setTipImg(StateLayout.ERROR, R.mipmap.ic_launcher); + break; + case R.id.btn_error: + stateLayout.showErrorView(); +// stateLayout.setTipText(StateLayout.LOADING, "12345"); + break; + case R.id.btn_loading: + stateLayout.showLoadingView(); +// stateLayout.setTipText(StateLayout.TIMEOUT, "12345"); +// stateLayout.setTipImg(StateLayout.TIMEOUT, R.mipmap.ic_launcher); + break; + case R.id.btn_time_out: + stateLayout.showTimeoutView(); +// stateLayout.setTipText(StateLayout.NOT_NETWORK, "12345"); +// stateLayout.setTipImg(StateLayout.NOT_NETWORK, R.mipmap.ic_launcher); + break; + case R.id.btn_not_network: + stateLayout.showNoNetworkView(); + break; + case R.id.btn_login: + stateLayout.showLoginView(); + break; + } + } +} diff --git a/app/src/main/res/drawable/rounded_corners.xml b/app/src/main/res/drawable/rounded_corners.xml new file mode 100644 index 0000000..210728a --- /dev/null +++ b/app/src/main/res/drawable/rounded_corners.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_sample.xml b/app/src/main/res/layout/activity_sample.xml new file mode 100644 index 0000000..47bd585 --- /dev/null +++ b/app/src/main/res/layout/activity_sample.xml @@ -0,0 +1,101 @@ + + + +