From 25b98735c5c0cbe40a07ae91a9fb2b204d9166b7 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期一, 20 三月 2023 22:30:08 +0800
Subject: [PATCH] 登录和家大事记
---
app/src/main/res/drawable-xhdpi/ic_personal_center_selected.png | 0
app/src/main/res/drawable/shape_ffd9d9d9_8_stroke.xml | 5
app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java | 33
app/src/main/res/drawable-xhdpi/ic_function_selected.png | 0
app/src/main/res/drawable-xhdpi/img_lotus.png | 0
app/src/main/res/drawable/selector_bottom_navigation_home.xml | 8
app/src/main/res/layout/fragment_function.xml | 548 +++++++++++
app/src/main/res/drawable-xhdpi/ic_personal_center_default.png | 0
app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragment.java | 2
app/src/main/res/drawable-xhdpi/ic_password_invisable.png | 0
app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivity.java | 63 +
.idea/misc.xml | 7
app/src/main/res/drawable-xhdpi/ic_home_selected.png | 0
app_base/src/main/res/values-sw1440dp/dimens.xml | 419 ++++++++
app/src/main/res/layout/activity_main.xml | 2
app_base/src/main/res/values/arrts.xml | 12
app/src/main/res/drawable-xhdpi/ic_home_default.png | 0
app/src/main/res/drawable-xxhdpi/ic_personal_center_default.png | 0
app/src/main/res/drawable/shape_ff093878_10_solid.xml | 5
app/build.gradle | 5
app/src/main/res/drawable/selector_bottom_navigation_personal_center.xml | 8
app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java | 27
app_base/src/main/java/com/android/app_base/widget/CustomScrollView.java | 67 +
app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragmentViewModel.java | 2
app/src/main/res/drawable-xxhdpi/bg_login_home.png | 0
app/src/main/res/drawable-xxhdpi/img_sakura.png | 0
app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java | 21
app/src/main/res/drawable-xxhdpi/ic_home_selected.png | 0
app_base/src/main/res/values-sw360dp/dimens.xml | 419 ++++++++
app/src/main/res/drawable-xxhdpi/ic_function_default.png | 0
app/src/main/res/layout/activity_login.xml | 208 ++++
app_base/src/main/java/com/android/app_base/widget/LinearItemDecoration.java | 100 ++
app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java | 55 +
app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyMemorabiliaRvAdapter.java | 102 ++
app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivityViewModel.java | 25
app/src/main/res/drawable-xxhdpi/ic_play.png | 0
app/src/main/res/drawable-xxhdpi/img_lotus.png | 0
app/src/main/res/layout/fragment_personal_center.xml | 2
screenMatch.properties | 2
app/src/main/res/drawable-xxhdpi/bg_login_zhang.png | 0
app/src/main/res/drawable-xhdpi/ic_function_default.png | 0
app_base/build.gradle | 4
app/src/main/res/values/colors.xml | 5
app/src/main/res/drawable-xhdpi/bg_login_home.png | 0
app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivityViewModel.java | 24
app/src/main/res/layout/activity_family_memorabilia.xml | 86 +
build.gradle | 10
app/src/main/res/drawable-xxhdpi/ic_modify.png | 0
app/src/main/res/drawable-xxhdpi/ic_personal_center_selected.png | 0
app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaBean.java | 9
app/src/main/res/drawable-xhdpi/bg_login_zhang.png | 0
app/src/main/res/drawable/selector_bottom_navigation_function.xml | 8
app/src/main/res/drawable-xxhdpi/ic_password_invisable.png | 0
app/src/main/res/drawable-xxhdpi/ic_delete.png | 0
app/src/main/res/drawable-xhdpi/ic_delete.png | 0
app/src/main/java/com/application/zhangshi_app_android/ui/main/MainViewModel.java | 2
app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java | 2
app/src/main/res/layout/item_family_memorabilia.xml | 283 ++++++
app/src/main/AndroidManifest.xml | 32
app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java | 2
.idea/deploymentTargetDropDown.xml | 17
app/src/main/res/layout/fragment_home.xml | 2
app/src/main/res/drawable-xhdpi/ic_play.png | 0
app_base/src/main/java/com/android/app_base/widget/CustomTextView.java | 89 +
app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java | 13
app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragmentViewModel.java | 2
app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java | 11
app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivity.java | 58 +
app/src/main/res/drawable-xxhdpi/ic_home_default.png | 0
app/src/main/res/drawable-xxhdpi/ic_function_selected.png | 0
app/src/main/res/drawable-xhdpi/ic_modify.png | 0
app/src/main/res/drawable-xhdpi/img_sakura.png | 0
72 files changed, 2,695 insertions(+), 111 deletions(-)
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..cb74abd
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="deploymentTargetDropDown">
+ <targetSelectedWithDropDown>
+ <Target>
+ <type value="QUICK_BOOT_TARGET" />
+ <deviceKey>
+ <Key>
+ <type value="VIRTUAL_DEVICE_PATH" />
+ <value value="D:\software\Android\.android\avd\Pixel_5_API_30.avd" />
+ </Key>
+ </deviceKey>
+ </Target>
+ </targetSelectedWithDropDown>
+ <timeTargetWasSelectedWithDropDown value="2023-03-20T10:41:31.976173300Z" />
+ </component>
+</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 360e6d4..5895a79 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -7,4 +7,11 @@
<component name="ProjectType">
<option name="id" value="Android" />
</component>
+ <component name="VisualizationToolProject">
+ <option name="state">
+ <ProjectState>
+ <option name="scale" value="0.152" />
+ </ProjectState>
+ </option>
+ </component>
</project>
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index ce2e22b..c75ca12 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -41,6 +41,7 @@
}
buildFeatures{
dataBinding = true
+ viewBinding true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
@@ -52,6 +53,10 @@
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.8.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
+ implementation 'androidx.annotation:annotation:1.3.0'
+ implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.1'
+ implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5934f9e..cf9de1b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
- <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MyApplication"
@@ -11,36 +11,42 @@
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
+ android:maxAspectRatio="2.4"
+ android:networkSecurityConfig="@xml/network_security_config"
+ android:resizeableActivity="true"
android:supportsRtl="true"
android:theme="@style/Theme.Zhangshi_app_android"
android:usesCleartextTraffic="true"
- android:networkSecurityConfig="@xml/network_security_config"
- android:resizeableActivity="true"
- android:maxAspectRatio="2.4"
- tools:targetApi="31" >
-
- <!--娌夋蹈寮忕姸鎬佹爮鍏ㄩ潰灞�-->
+ tools:targetApi="31">
+ <!-- 娌夋蹈寮忕姸鎬佹爮鍏ㄩ潰灞� -->
<meta-data
android:name="android.max_aspect"
- android:value="2.4" />
- <!--閫傞厤鍗庝负锛坔uawei锛夊垬娴峰睆-->
+ android:value="2.4" /> <!-- 閫傞厤鍗庝负锛坔uawei锛夊垬娴峰睆 -->
<meta-data
android:name="android.notch_support"
- android:value="true"/>
- <!--閫傞厤灏忕背锛坸iaomi锛夊垬娴峰睆-->
+ android:value="true" /> <!-- 閫傞厤灏忕背锛坸iaomi锛夊垬娴峰睆 -->
<meta-data
android:name="notch.config"
android:value="portrait|landscape" />
<activity
- android:name=".module.main.MainActivity"
+ android:name=".ui.main.MainActivity"
android:exported="true">
+ </activity>
+ <activity
+ android:name=".ui.login.LoginActivity"
+ android:exported="true"
+ android:screenOrientation="portrait"
+ >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
+
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
+ <activity
+ android:name=".ui.function.FamilyMemorabiliaActivity"
+ android:exported="false" />
</application>
-
</manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyMemorabiliaRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyMemorabiliaRvAdapter.java
new file mode 100644
index 0000000..5df1e45
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyMemorabiliaRvAdapter.java
@@ -0,0 +1,102 @@
+package com.application.zhangshi_app_android.adapter;
+
+import android.content.Context;
+import android.view.View;
+import android.view.animation.Animation;
+import android.view.animation.Transformation;
+import android.widget.FrameLayout;
+
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
+import com.application.zhangshi_app_android.databinding.ItemFamilyMemorabiliaBinding;
+
+/**
+ * @author Ljj
+ * @date 2023.03.18. 10:27
+ * @desc 瀹跺ぇ浜嬭 recyclerView 鐨� adapter
+ */
+public class FamilyMemorabiliaRvAdapter extends BaseRVAdapter<FamilyMemorabiliaBean, ItemFamilyMemorabiliaBinding, FamilyMemorabiliaRvAdapter.MyViewHolder> {
+ public FamilyMemorabiliaRvAdapter(Context context) {
+ super(context);
+ }
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.item_family_memorabilia;
+ }
+
+ @Override
+ protected MyViewHolder getViewHolder(ItemFamilyMemorabiliaBinding itemBind) {
+ return new MyViewHolder(itemBind);
+ }
+
+ @Override
+ protected void onBind(MyViewHolder holder, int position) {
+ if (position % 2 != 0){
+ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue));
+ }else {
+ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
+ }
+ holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (holder.isExpended){
+ int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
+ int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
+ int distanceToCollapse = (int) (initialHeight - collapsedHeight);
+
+ Animation a = new Animation() {
+ @Override
+ protected void applyTransformation(float interpolatedTime, Transformation t) {
+ if (interpolatedTime == 1){
+ }
+ holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime));
+ holder.getBinding().cardView.requestLayout();
+ }
+
+ @Override
+ public boolean willChangeBounds() {
+ return true;
+ }
+ };
+ a.setDuration(500);
+ holder.getBinding().cardView.startAnimation(a);
+ holder.isExpended = false;
+ }else{
+ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
+ holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
+ int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
+ int distanceToExpand = targetHeight - initialHeight;
+ Animation a = new Animation() {
+ @Override
+ protected void applyTransformation(float interpolatedTime, Transformation t) {
+ if (interpolatedTime == 1){
+ }
+ holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime));
+ holder.getBinding().cardView.requestLayout();
+ }
+
+ @Override
+ public boolean willChangeBounds() {
+ return true;
+ }
+ };
+ a.setDuration(500);
+ holder.getBinding().cardView.startAnimation(a);
+ holder.isExpended = true;
+ }
+ }
+ });
+ }
+
+
+ public static class MyViewHolder extends BaseViewHolder<ItemFamilyMemorabiliaBinding>{
+ private boolean isExpended;
+
+ public MyViewHolder(ItemFamilyMemorabiliaBinding binding) {
+ super(binding);
+ }
+ }
+}
+
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaBean.java
new file mode 100644
index 0000000..24bd61d
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyMemorabiliaBean.java
@@ -0,0 +1,9 @@
+package com.application.zhangshi_app_android.bean;
+
+/**
+ * @author Ljj
+ * @date 2023.03.18. 10:29
+ * @desc 瀹跺ぇ浜嬭 bean 绫�
+ */
+public class FamilyMemorabiliaBean {
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivity.java
new file mode 100644
index 0000000..f073c3f
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivity.java
@@ -0,0 +1,58 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import com.android.app_base.base.view.BaseActivity;
+import com.android.app_base.widget.LinearItemDecoration;
+import com.application.zhangshi_app_android.BR;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.adapter.FamilyMemorabiliaRvAdapter;
+import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
+import com.application.zhangshi_app_android.databinding.ActivityFamilyMemorabiliaBinding;
+/**
+ * @author Ljj
+ * @date 2023.03.18. 10:00
+ * @desc 瀹跺ぇ浜嬭 Activity
+ */
+public class FamilyMemorabiliaActivity extends BaseActivity<ActivityFamilyMemorabiliaBinding,FamilyMemorabiliaActivityViewModel> {
+
+ FamilyMemorabiliaRvAdapter adapter;
+
+ @Override
+ public int getLayoutId() {
+ return R.layout.activity_family_memorabilia;
+ }
+
+ @Override
+ public int getVariableId() {
+ return BR.viewModel;
+ }
+
+ @Override
+ public void initParam() {
+
+ }
+
+ @Override
+ public void initView() {
+ adapter = new FamilyMemorabiliaRvAdapter(this);
+ LinearItemDecoration itemDecoration = new LinearItemDecoration();
+ itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
+ itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
+ itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
+ binding.recyclerView.addItemDecoration(itemDecoration);
+ binding.recyclerView.setAdapter(adapter);
+ }
+
+ @Override
+ public void initData() {
+ adapter.addItem(new FamilyMemorabiliaBean());
+ adapter.addItem(new FamilyMemorabiliaBean());
+ adapter.addItem(new FamilyMemorabiliaBean());
+ adapter.addItem(new FamilyMemorabiliaBean());
+ adapter.addItem(new FamilyMemorabiliaBean());
+ }
+
+ @Override
+ public void initLiveDataObserve() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivityViewModel.java
new file mode 100644
index 0000000..1e180b5
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivityViewModel.java
@@ -0,0 +1,25 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import android.app.Application;
+
+import androidx.annotation.NonNull;
+
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+/**
+ * @author Ljj
+ * @date 2023.03.18. 10:00
+ * @desc 瀹跺ぇ浜嬭 viewmodel
+ */
+public class FamilyMemorabiliaActivityViewModel extends BaseViewModel<DataRepository> {
+
+ public FamilyMemorabiliaActivityViewModel(@NonNull Application application) {
+ super(application);
+ }
+
+ @Override
+ protected DataRepository initModel() {
+ return DataRepository.getInstance();
+ }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/module/function/FunctionFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
similarity index 74%
rename from app/src/main/java/com/application/zhangshi_app_android/module/function/FunctionFragment.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
index 5366273..6c08b27 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/module/function/FunctionFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
@@ -1,8 +1,10 @@
-package com.application.zhangshi_app_android.module.function;
+package com.application.zhangshi_app_android.ui.function;
import android.os.Bundle;
+import android.view.View;
import com.android.app_base.base.view.BaseFragment;
+import com.android.app_base.manager.AppManager;
import com.application.zhangshi_app_android.BR;
import com.application.zhangshi_app_android.R;
import com.application.zhangshi_app_android.databinding.FragmentFunctionBinding;
@@ -39,7 +41,12 @@
@Override
protected void initView() {
-
+ binding.layoutFamilyMemorabilia.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ AppManager.getAppManager().startActivity(FamilyMemorabiliaActivity.class);
+ }
+ });
}
@Override
@@ -56,4 +63,6 @@
protected boolean isStatusBarImmersionEnabled() {
return true;
}
+
+
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/module/function/FunctionFragmentViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragmentViewModel.java
similarity index 90%
rename from app/src/main/java/com/application/zhangshi_app_android/module/function/FunctionFragmentViewModel.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragmentViewModel.java
index dc8748f..ce11e3e 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/module/function/FunctionFragmentViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragmentViewModel.java
@@ -1,4 +1,4 @@
-package com.application.zhangshi_app_android.module.function;
+package com.application.zhangshi_app_android.ui.function;
import android.app.Application;
diff --git a/app/src/main/java/com/application/zhangshi_app_android/module/home/HomeFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java
similarity index 94%
rename from app/src/main/java/com/application/zhangshi_app_android/module/home/HomeFragment.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java
index 25f22a2..b2a9383 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/module/home/HomeFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java
@@ -1,4 +1,4 @@
-package com.application.zhangshi_app_android.module.home;
+package com.application.zhangshi_app_android.ui.home;
import android.os.Bundle;
diff --git a/app/src/main/java/com/application/zhangshi_app_android/module/home/HomeFragmentViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragmentViewModel.java
similarity index 90%
rename from app/src/main/java/com/application/zhangshi_app_android/module/home/HomeFragmentViewModel.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragmentViewModel.java
index fbf2b7c..d6ec79c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/module/home/HomeFragmentViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragmentViewModel.java
@@ -1,4 +1,4 @@
-package com.application.zhangshi_app_android.module.home;
+package com.application.zhangshi_app_android.ui.home;
import android.app.Application;
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivity.java
new file mode 100644
index 0000000..5b5f313
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivity.java
@@ -0,0 +1,63 @@
+package com.application.zhangshi_app_android.ui.login;
+
+import android.view.View;
+
+import androidx.annotation.NonNull;
+
+import com.android.app_base.base.view.BaseActivity;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.application.zhangshi_app_android.BR;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.databinding.ActivityLoginBinding;
+import com.application.zhangshi_app_android.ui.main.MainActivity;
+import com.gyf.immersionbar.ImmersionBar;
+
+/**
+ * @author Ljj
+ * @date 2023.03.18. 17:44
+ * @desc 鐧诲綍娉ㄥ唽 Activity
+ */
+public class LoginActivity extends BaseActivity<ActivityLoginBinding,LoginActivityViewModel> {
+ @Override
+ public int getLayoutId() {
+ return R.layout.activity_login;
+ }
+
+ @Override
+ public int getVariableId() {
+ return BR.viewModel;
+ }
+
+ @Override
+ public void initParam() {
+
+ }
+
+ @Override
+ public void initView() {
+ binding.tvLogin.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ AppManager.getAppManager().startActivity(MainActivity.class);
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initLiveDataObserve() {
+
+ }
+
+ @NonNull
+ @Override
+ protected ImmersionBar createStatusBarConfig() {
+ return super.createStatusBarConfig().fitsSystemWindows(true) //浣跨敤璇ュ睘鎬�,蹇呴』鎸囧畾鐘舵�佹爮棰滆壊
+ .statusBarColor(R.color.color_normal_background);
+ }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivityViewModel.java
new file mode 100644
index 0000000..8306c41
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/login/LoginActivityViewModel.java
@@ -0,0 +1,24 @@
+package com.application.zhangshi_app_android.ui.login;
+
+import android.app.Application;
+
+import androidx.annotation.NonNull;
+
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+/**
+ * @author Ljj
+ * @date 2023.03.18. 17:47
+ * @desc 鐧诲綍娉ㄥ唽ViewModel
+ */
+public class LoginActivityViewModel extends BaseViewModel<DataRepository> {
+ public LoginActivityViewModel(@NonNull Application application) {
+ super(application);
+ }
+
+ @Override
+ protected DataRepository initModel() {
+ return DataRepository.getInstance();
+ }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/module/main/MainActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
similarity index 78%
rename from app/src/main/java/com/application/zhangshi_app_android/module/main/MainActivity.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
index 3aea357..d81ca89 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/module/main/MainActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
@@ -1,4 +1,4 @@
-package com.application.zhangshi_app_android.module.main;
+package com.application.zhangshi_app_android.ui.main;
import android.view.MenuItem;
@@ -6,18 +6,18 @@
import androidx.annotation.NonNull;
import androidx.viewpager2.widget.ViewPager2;
-import com.android.app_base.base.adapter.BaseFragmentAdapter;
+import com.android.app_base.base.adapter.BaseVp2FragmentAdapter;
import com.android.app_base.base.view.BaseActivity;
import com.android.app_base.base.view.BaseFragment;
import com.android.app_base.helper.DoubleClickHelper;
import com.android.app_base.manager.AppManager;
-import com.android.app_base.utils.ToastUtils;
import com.application.zhangshi_app_android.BR;
import com.application.zhangshi_app_android.R;
import com.application.zhangshi_app_android.databinding.ActivityMainBinding;
-import com.application.zhangshi_app_android.module.function.FunctionFragment;
-import com.application.zhangshi_app_android.module.home.HomeFragment;
-import com.application.zhangshi_app_android.module.personal_center.PersonalCenterFragment;
+import com.application.zhangshi_app_android.ui.function.FunctionFragment;
+import com.application.zhangshi_app_android.ui.home.HomeFragment;
+import com.application.zhangshi_app_android.ui.personal_center.PersonalCenterFragment;
+import com.blankj.utilcode.util.ToastUtils;
import com.google.android.material.navigation.NavigationBarView;
/**
@@ -42,28 +42,19 @@
@Override
public void initView() {
- BaseFragmentAdapter<BaseFragment> mPagerAdapter = new BaseFragmentAdapter<>(this);
+ BaseVp2FragmentAdapter<BaseFragment> mPagerAdapter = new BaseVp2FragmentAdapter<>(this);
mPagerAdapter.addFragment(HomeFragment.newInstance());
mPagerAdapter.addFragment(FunctionFragment.newInstance());
mPagerAdapter.addFragment(PersonalCenterFragment.newInstance());
binding.mainVp.setAdapter(mPagerAdapter);
binding.mainVp.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
- super.onPageScrolled(position, positionOffset, positionOffsetPixels);
- }
-
- @Override
public void onPageSelected(int position) {
- super.onPageSelected(position);
binding.mainBnv.setSelectedItemId(binding.mainBnv.getMenu().getItem(position).getItemId());
- }
-
- @Override
- public void onPageScrollStateChanged(int state) {
- super.onPageScrollStateChanged(state);
+ super.onPageSelected(position);
}
});
+
// 涓嶄娇鐢ㄥ浘鏍囬粯璁ゅ彉鑹�
binding.mainBnv.setItemIconTintList(null);
binding.mainBnv.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/module/main/MainViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainViewModel.java
similarity index 88%
rename from app/src/main/java/com/application/zhangshi_app_android/module/main/MainViewModel.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/main/MainViewModel.java
index 4bc5e0f..4b494b7 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/module/main/MainViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainViewModel.java
@@ -1,4 +1,4 @@
-package com.application.zhangshi_app_android.module.main;
+package com.application.zhangshi_app_android.ui.main;
import android.app.Application;
diff --git a/app/src/main/java/com/application/zhangshi_app_android/module/personal_center/PersonalCenterFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragment.java
similarity index 94%
rename from app/src/main/java/com/application/zhangshi_app_android/module/personal_center/PersonalCenterFragment.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragment.java
index 7b72f4a..80065c4 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/module/personal_center/PersonalCenterFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragment.java
@@ -1,4 +1,4 @@
-package com.application.zhangshi_app_android.module.personal_center;
+package com.application.zhangshi_app_android.ui.personal_center;
import android.os.Bundle;
diff --git a/app/src/main/java/com/application/zhangshi_app_android/module/personal_center/PersonalCenterFragmentViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java
similarity index 89%
rename from app/src/main/java/com/application/zhangshi_app_android/module/personal_center/PersonalCenterFragmentViewModel.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java
index ccb8c5e..028002a 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/module/personal_center/PersonalCenterFragmentViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/personal_center/PersonalCenterFragmentViewModel.java
@@ -1,4 +1,4 @@
-package com.application.zhangshi_app_android.module.personal_center;
+package com.application.zhangshi_app_android.ui.personal_center;
import android.app.Application;
diff --git a/app/src/main/res/drawable-xhdpi/bg_login_home.png b/app/src/main/res/drawable-xhdpi/bg_login_home.png
new file mode 100644
index 0000000..ec00633
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/bg_login_home.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/bg_login_zhang.png b/app/src/main/res/drawable-xhdpi/bg_login_zhang.png
new file mode 100644
index 0000000..06e7791
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/bg_login_zhang.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_delete.png b/app/src/main/res/drawable-xhdpi/ic_delete.png
new file mode 100644
index 0000000..1447496
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_delete.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_function_default.png b/app/src/main/res/drawable-xhdpi/ic_function_default.png
new file mode 100644
index 0000000..e1a5bc6
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_function_default.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_function_selected.png b/app/src/main/res/drawable-xhdpi/ic_function_selected.png
new file mode 100644
index 0000000..a49fba1
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_function_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_home_default.png b/app/src/main/res/drawable-xhdpi/ic_home_default.png
new file mode 100644
index 0000000..ae5c242
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_home_default.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_home_selected.png b/app/src/main/res/drawable-xhdpi/ic_home_selected.png
new file mode 100644
index 0000000..4566758
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_home_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_modify.png b/app/src/main/res/drawable-xhdpi/ic_modify.png
new file mode 100644
index 0000000..03fd582
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_modify.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_password_invisable.png b/app/src/main/res/drawable-xhdpi/ic_password_invisable.png
new file mode 100644
index 0000000..9dcfde2
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_password_invisable.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_personal_center_default.png b/app/src/main/res/drawable-xhdpi/ic_personal_center_default.png
new file mode 100644
index 0000000..222ed8d
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_personal_center_default.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_personal_center_selected.png b/app/src/main/res/drawable-xhdpi/ic_personal_center_selected.png
new file mode 100644
index 0000000..12410eb
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_personal_center_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_play.png b/app/src/main/res/drawable-xhdpi/ic_play.png
new file mode 100644
index 0000000..377c02d
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_play.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/img_lotus.png b/app/src/main/res/drawable-xhdpi/img_lotus.png
new file mode 100644
index 0000000..a10bb88
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/img_lotus.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/img_sakura.png b/app/src/main/res/drawable-xhdpi/img_sakura.png
new file mode 100644
index 0000000..fb75891
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/img_sakura.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/bg_login_home.png b/app/src/main/res/drawable-xxhdpi/bg_login_home.png
new file mode 100644
index 0000000..6cebcfc
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/bg_login_home.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/bg_login_zhang.png b/app/src/main/res/drawable-xxhdpi/bg_login_zhang.png
new file mode 100644
index 0000000..baac0b2
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/bg_login_zhang.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_delete.png b/app/src/main/res/drawable-xxhdpi/ic_delete.png
new file mode 100644
index 0000000..12cdc73
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_delete.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_function_default.png b/app/src/main/res/drawable-xxhdpi/ic_function_default.png
new file mode 100644
index 0000000..e7aff91
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_function_default.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_function_selected.png b/app/src/main/res/drawable-xxhdpi/ic_function_selected.png
new file mode 100644
index 0000000..b5d9f5d
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_function_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_home_default.png b/app/src/main/res/drawable-xxhdpi/ic_home_default.png
new file mode 100644
index 0000000..093c909
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_home_default.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_home_selected.png b/app/src/main/res/drawable-xxhdpi/ic_home_selected.png
new file mode 100644
index 0000000..03b3cfd
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_home_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_modify.png b/app/src/main/res/drawable-xxhdpi/ic_modify.png
new file mode 100644
index 0000000..1ed0ac2
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_modify.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_password_invisable.png b/app/src/main/res/drawable-xxhdpi/ic_password_invisable.png
new file mode 100644
index 0000000..1a9e029
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_password_invisable.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_personal_center_default.png b/app/src/main/res/drawable-xxhdpi/ic_personal_center_default.png
new file mode 100644
index 0000000..a4f046b
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_personal_center_default.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_personal_center_selected.png b/app/src/main/res/drawable-xxhdpi/ic_personal_center_selected.png
new file mode 100644
index 0000000..414fc57
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_personal_center_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_play.png b/app/src/main/res/drawable-xxhdpi/ic_play.png
new file mode 100644
index 0000000..371a9ed
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_play.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/img_lotus.png b/app/src/main/res/drawable-xxhdpi/img_lotus.png
new file mode 100644
index 0000000..d4b2df0
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/img_lotus.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/img_sakura.png b/app/src/main/res/drawable-xxhdpi/img_sakura.png
new file mode 100644
index 0000000..2671d35
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/img_sakura.png
Binary files differ
diff --git a/app/src/main/res/drawable/selector_bottom_navigation_function.xml b/app/src/main/res/drawable/selector_bottom_navigation_function.xml
index 1474d79..146c26f 100644
--- a/app/src/main/res/drawable/selector_bottom_navigation_function.xml
+++ b/app/src/main/res/drawable/selector_bottom_navigation_function.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
-<!-- <!– 鎸夊帇鐘舵�� –>-->
-<!-- <item android:drawable="@drawable/ic_function_selected" android:state_checked="true" />-->
+ <!-- 鎸夊帇鐘舵�� -->
+ <item android:drawable="@drawable/ic_function_selected" android:state_checked="true" />
-<!-- <!– 榛樿鐘舵�� –>-->
-<!-- <item android:drawable="@drawable/ic_function_default" />-->
+ <!-- 榛樿鐘舵�� -->
+ <item android:drawable="@drawable/ic_function_default" />
</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_bottom_navigation_home.xml b/app/src/main/res/drawable/selector_bottom_navigation_home.xml
index 641575b..05281a4 100644
--- a/app/src/main/res/drawable/selector_bottom_navigation_home.xml
+++ b/app/src/main/res/drawable/selector_bottom_navigation_home.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
-<!-- <!– 鎸夊帇鐘舵�� –>-->
-<!-- <item android:drawable="@drawable/ic_home_selected" android:state_checked="true" />-->
+ <!-- 鎸夊帇鐘舵�� -->
+ <item android:drawable="@drawable/ic_home_selected" android:state_checked="true" />
-<!-- <!– 榛樿鐘舵�� –>-->
-<!-- <item android:drawable="@drawable/ic_home_default" />-->
+ <!-- 榛樿鐘舵�� -->
+ <item android:drawable="@drawable/ic_home_default" />
</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/selector_bottom_navigation_personal_center.xml b/app/src/main/res/drawable/selector_bottom_navigation_personal_center.xml
index 130ac73..01bc631 100644
--- a/app/src/main/res/drawable/selector_bottom_navigation_personal_center.xml
+++ b/app/src/main/res/drawable/selector_bottom_navigation_personal_center.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
-<!-- <!– 鎸夊帇鐘舵�� –>-->
-<!-- <item android:drawable="@drawable/ic_personal_center_selected" android:state_checked="true" />-->
+ <!-- 鎸夊帇鐘舵�� -->
+ <item android:drawable="@drawable/ic_personal_center_selected" android:state_checked="true" />
-<!-- <!– 榛樿鐘舵�� –>-->
-<!-- <item android:drawable="@drawable/ic_personal_center_default" />-->
+ <!-- 榛樿鐘舵�� -->
+ <item android:drawable="@drawable/ic_personal_center_default" />
</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_ff093878_10_solid.xml b/app/src/main/res/drawable/shape_ff093878_10_solid.xml
new file mode 100644
index 0000000..437666e
--- /dev/null
+++ b/app/src/main/res/drawable/shape_ff093878_10_solid.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="@dimen/dp_10"/>
+ <solid android:color="#FF093878"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_ffd9d9d9_8_stroke.xml b/app/src/main/res/drawable/shape_ffd9d9d9_8_stroke.xml
new file mode 100644
index 0000000..d296538
--- /dev/null
+++ b/app/src/main/res/drawable/shape_ffd9d9d9_8_stroke.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="@dimen/dp_8"/>
+ <stroke android:color="#FFD9D9D9" android:width="@dimen/dp_1"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_family_memorabilia.xml b/app/src/main/res/layout/activity_family_memorabilia.xml
new file mode 100644
index 0000000..f4dbcf2
--- /dev/null
+++ b/app/src/main/res/layout/activity_family_memorabilia.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+ <variable
+ name="viewModel"
+ type="com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivityViewModel"/>
+ </data>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".ui.function.FamilyMemorabiliaActivity"
+ android:orientation="vertical">
+
+
+ <com.hjq.bar.TitleBar
+ android:id="@+id/titleBar"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dp_55"
+ app:layout_constraintTop_toTopOf="parent"
+ android:background="@color/color_title_bar_background"
+ android:paddingHorizontal="@dimen/dp_16"
+ app:leftIcon="@null"
+ app:rightIcon="@null"
+ >
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="start|center_vertical"
+ android:orientation="horizontal" >
+
+ <ImageView
+ android:id="@+id/menu"
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_menu"
+ android:layout_gravity="center"
+ />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/dp_32"
+ android:text="瀹跺ぇ浜嬭"
+ android:textColor="@color/white"
+ android:textSize="@dimen/sp_20"
+ />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end|center_vertical"
+ android:orientation="horizontal" >
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_search"
+ />
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_operate"
+ android:layout_marginStart="@dimen/dp_16"
+ />
+
+ </LinearLayout>
+ </com.hjq.bar.TitleBar>
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recyclerView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/color_normal_background"
+ tools:listitem="@layout/item_family_memorabilia"
+ tools:itemCount="20"
+ />
+
+ </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
new file mode 100644
index 0000000..9edab23
--- /dev/null
+++ b/app/src/main/res/layout/activity_login.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <data>
+ <variable
+ name="viewModel"
+ type="com.application.zhangshi_app_android.ui.login.LoginActivityViewModel" />
+ </data>
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/color_normal_background"
+ >
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginHorizontal="@dimen/dp_30"
+ android:orientation="vertical"
+ >
+ <ImageView
+ android:id="@+id/iv_bg_home"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dp_165"
+ android:background="@drawable/bg_login_home"
+ />
+ <androidx.cardview.widget.CardView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:cardCornerRadius="@dimen/dp_15"
+ app:cardElevation="0dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="@+id/iv_bg_home"
+ app:layout_constraintStart_toStartOf="@+id/iv_bg_home"
+ app:layout_constraintTop_toBottomOf="@+id/iv_bg_home"
+ >
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <ImageView
+ android:id="@+id/iv_bg_zhang"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_20"
+ android:background="@drawable/bg_login_zhang"
+ android:layout_centerHorizontal="true"
+ />
+
+ <TextView
+ android:id="@+id/tv_welcome"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="@dimen/dp_25"
+ android:text="娆㈣繋鏉ュ埌寮犳皬APP"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_20"
+ android:textStyle="bold"
+ android:layout_centerHorizontal="true"
+ android:layout_marginVertical="@dimen/dp_20"
+ />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="@dimen/dp_27"
+ android:orientation="vertical"
+ android:layout_below="@id/tv_welcome"
+ >
+ <TextView
+ android:id="@+id/tv_account"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="璐﹀彿"
+ android:textColor="#FF484848"
+ android:textSize="@dimen/sp_12"
+ />
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_10"
+ android:background="@drawable/shape_ffd9d9d9_8_stroke"
+ android:paddingVertical="@dimen/dp_12"
+ >
+ <EditText
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginStart="@dimen/dp_16"
+ android:background="@null"
+ android:hint="璇疯緭鍏ヨ处鍙�"
+ android:textColor="#FF093878"
+ android:textSize="@dimen/sp_16"
+ android:textColorHint="#FF8F9090"
+ />
+ </LinearLayout>
+ <TextView
+ android:id="@+id/tv_password"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_20"
+ android:text="瀵嗙爜"
+ android:textColor="#FF484848"
+ android:textSize="@dimen/sp_12"
+ />
+ <LinearLayout
+ android:id="@+id/layout_password"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_7"
+ android:paddingVertical="@dimen/dp_12"
+ android:background="@drawable/shape_ffd9d9d9_8_stroke"
+ android:gravity="center"
+ android:orientation="horizontal"
+ >
+ <EditText
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/dp_16"
+ android:layout_weight="1"
+ android:background="@null"
+ android:textColor="#FF093878"
+ android:textSize="@dimen/sp_16"
+ android:hint="璇疯緭鍏ヨ处鍙�"
+ android:textColorHint="#FF8F9090"
+ />
+
+ <ImageView
+ android:layout_width="@dimen/dp_16"
+ android:layout_height="@dimen/dp_20"
+ android:layout_marginEnd="@dimen/dp_12"
+ android:background="@drawable/ic_password_invisable" />
+ </LinearLayout>
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="楠岃瘉鐮�"
+ android:textColor="#FF484848"
+ android:textSize="@dimen/sp_12"
+ android:layout_marginTop="@dimen/dp_20"
+ />
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:layout_marginTop="@dimen/dp_10"
+ >
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:background="@drawable/shape_ffd9d9d9_8_stroke"
+ android:paddingVertical="@dimen/dp_12"
+ android:layout_weight="6"
+ >
+ <EditText
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginStart="@dimen/dp_16"
+ android:background="@null"
+ android:hint="璇疯緭鍏ラ獙璇佺爜"
+ android:textColor="#FF093878"
+ android:textSize="@dimen/sp_16"
+ android:textColorHint="#FF8F9090"
+ />
+ </LinearLayout>
+
+ <ImageView
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="4"
+ android:layout_marginStart="@dimen/dp_6"
+ />
+ </LinearLayout>
+ <TextView
+ android:id="@+id/tv_login"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/shape_ff093878_10_solid"
+ android:text="娉ㄥ唽/鐧诲綍"
+ android:textColor="@color/white"
+ android:gravity="center"
+ android:paddingVertical="@dimen/dp_10"
+ android:paddingHorizontal="@dimen/dp_77"
+ android:textSize="@dimen/sp_12"
+ android:layout_marginVertical="@dimen/dp_27"
+ android:layout_gravity="center"
+ />
+
+
+ </LinearLayout>
+
+
+ </RelativeLayout>
+ </androidx.cardview.widget.CardView>
+
+ </LinearLayout>
+
+
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 201a214..152a8ec 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -6,7 +6,7 @@
<data>
<variable
name="viewModel"
- type="com.application.zhangshi_app_android.module.main.MainViewModel" />
+ type="com.application.zhangshi_app_android.ui.main.MainViewModel" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
diff --git a/app/src/main/res/layout/fragment_function.xml b/app/src/main/res/layout/fragment_function.xml
index c1375ea..1750aa7 100644
--- a/app/src/main/res/layout/fragment_function.xml
+++ b/app/src/main/res/layout/fragment_function.xml
@@ -5,51 +5,561 @@
<data>
<variable
name="viewModel"
- type="com.application.zhangshi_app_android.module.function.FunctionFragmentViewModel" />
+ type="com.application.zhangshi_app_android.ui.function.FunctionFragmentViewModel" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:background="@color/color_normal_background"
+ android:orientation="vertical"
+ >
<com.hjq.bar.TitleBar
+ android:id="@+id/titleBar"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_55"
- app:layout_constraintTop_toTopOf="parent"
- android:background="@color/color_title_background"
+ android:background="@color/color_title_bar_background"
android:paddingHorizontal="@dimen/dp_16"
- app:leftIcon="@drawable/ic_menu"
- app:leftTitle="鍔熻兘"
- app:leftTitleSize="@dimen/sp_20"
- app:leftTitleColor="@color/white"
- app:leftIconWidth="@dimen/dp_24"
- app:leftIconHeight="@dimen/dp_24"
- app:leftIconPadding="@dimen/dp_32"
- app:leftHorizontalPadding="@dimen/dp_0"
- app:rightIcon="@null"
- >
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:leftIcon="@null"
+ app:rightIcon="@null">
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="start|center_vertical"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/menu"
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:layout_gravity="center"
+ android:background="@drawable/ic_menu" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/dp_32"
+ android:text="@string/title_function"
+ android:textColor="@color/white"
+ android:textSize="@dimen/sp_20" />
+
+ </LinearLayout>
+
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
- android:orientation="horizontal" >
+ android:orientation="horizontal">
<ImageView
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
- android:background="@drawable/ic_search"
- />
+ android:background="@drawable/ic_search" />
<ImageView
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
- android:background="@drawable/ic_operate"
android:layout_marginStart="@dimen/dp_16"
- />
+ android:background="@drawable/ic_operate" />
</LinearLayout>
</com.hjq.bar.TitleBar>
+ <ImageView
+ android:id="@+id/iv_group_photo"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dp_200"
+ android:background="@drawable/img_sakura"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/titleBar"
+ />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/iv_group_photo"
+ >
+ <androidx.core.widget.NestedScrollView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ >
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/dp_10"
+ >
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/gl_v_0.5"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.5"
+ />
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/gl_v_0.75"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.75"
+ />
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/gl_v_0.25"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.25"
+ />
+
+ <TextView
+ android:id="@+id/tv_core_module"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/dp_20"
+ android:layout_marginTop="@dimen/dp_20"
+ android:text="鏍稿績妯″潡"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_18"
+ android:textStyle="bold"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <LinearLayout
+ android:id="@+id/layout_home_root_net"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_15"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toStartOf="@+id/gl_v_0.25"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/tv_core_module">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="瀹舵牴缃�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_family_memorabilia"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toStartOf="@+id/gl_v_0.5"
+ app:layout_constraintStart_toStartOf="@+id/gl_v_0.25"
+ app:layout_constraintTop_toTopOf="@id/layout_home_root_net">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="瀹跺ぇ浜嬭"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_family_assets"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toStartOf="@+id/gl_v_0.75"
+ app:layout_constraintStart_toStartOf="@+id/gl_v_0.5"
+ app:layout_constraintTop_toTopOf="@id/layout_home_root_net">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="瀹跺涵璧勪骇"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_honor_collection"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="@+id/gl_v_0.75"
+ app:layout_constraintTop_toTopOf="@id/layout_home_root_net">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="鑽h獕鏀惰棌"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/layout_little_doctor"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintStart_toStartOf="@id/layout_home_root_net"
+ app:layout_constraintEnd_toEndOf="@id/layout_home_root_net"
+ app:layout_constraintTop_toBottomOf="@id/layout_home_root_net"
+ android:layout_marginTop="@dimen/dp_20"
+ android:gravity="center"
+ >
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:textSize="@dimen/sp_14"
+ android:text="灏忓尰鐢�"
+ android:textColor="@color/black"
+ />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_clean_storage"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintStart_toStartOf="@id/layout_family_memorabilia"
+ app:layout_constraintEnd_toEndOf="@id/layout_family_memorabilia"
+ app:layout_constraintTop_toTopOf="@id/layout_little_doctor"
+ android:gravity="center"
+ >
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:textSize="@dimen/sp_14"
+ android:text="淇濇磥鏀剁撼"
+ android:textColor="@color/black"
+ />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_contacts"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toEndOf="@+id/layout_family_assets"
+ app:layout_constraintStart_toStartOf="@+id/layout_family_assets"
+ app:layout_constraintTop_toTopOf="@id/layout_little_doctor">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="閫氳褰�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_pet"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toEndOf="@+id/layout_honor_collection"
+ app:layout_constraintStart_toStartOf="@+id/layout_honor_collection"
+ app:layout_constraintTop_toTopOf="@id/layout_little_doctor">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="榄呭疇"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/layout_income_and_expenses"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:layout_marginTop="@dimen/dp_20"
+ app:layout_constraintEnd_toEndOf="@+id/layout_little_doctor"
+ app:layout_constraintStart_toStartOf="@+id/layout_little_doctor"
+ app:layout_constraintTop_toBottomOf="@+id/layout_little_doctor">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="鏀舵敮鍙拌处"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/tv_personal_module"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_20"
+ android:text="涓汉妯″潡"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_18"
+ android:textStyle="bold"
+ app:layout_constraintStart_toStartOf="@+id/tv_core_module"
+ app:layout_constraintTop_toBottomOf="@+id/layout_income_and_expenses" />
+
+ <LinearLayout
+ android:id="@+id/layout_growing_up"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_15"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toStartOf="@+id/gl_v_0.25"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/tv_personal_module">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="鎴愰暱缁忓巻"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_marriage"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toStartOf="@+id/gl_v_0.5"
+ app:layout_constraintStart_toStartOf="@+id/gl_v_0.25"
+ app:layout_constraintTop_toTopOf="@id/layout_growing_up">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="濠氬Щ"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/layout_property"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toStartOf="@+id/gl_v_0.75"
+ app:layout_constraintStart_toStartOf="@+id/gl_v_0.5"
+ app:layout_constraintTop_toTopOf="@+id/layout_growing_up">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="璐骇"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_hundred_wish"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="@+id/gl_v_0.75"
+ app:layout_constraintTop_toTopOf="@+id/layout_growing_up">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="鐧惧勾蹇冩効"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/layout_tourism"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_20"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toStartOf="@+id/gl_v_0.25"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/layout_growing_up">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="鏃呮父"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/layout_health_care"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toStartOf="@+id/gl_v_0.5"
+ app:layout_constraintStart_toStartOf="@+id/gl_v_0.25"
+ app:layout_constraintTop_toTopOf="@+id/layout_tourism">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="鍋ュ悍淇濆仴"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/layout_certificate_of_honor"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toStartOf="@+id/gl_v_0.75"
+ app:layout_constraintStart_toStartOf="@+id/gl_v_0.5"
+ app:layout_constraintTop_toTopOf="@+id/layout_tourism">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="鑽h獕璇佷功"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/layout_privacy"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="@+id/gl_v_0.75"
+ app:layout_constraintTop_toTopOf="@+id/layout_tourism">
+
+ <ImageView
+ android:layout_width="@dimen/dp_24"
+ android:layout_height="@dimen/dp_24"
+ android:background="@drawable/ic_delete" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_4"
+ android:text="闅愮"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14" />
+ </LinearLayout>
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </androidx.core.widget.NestedScrollView>
+
+ </LinearLayout>
+
+
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index d439c25..64bd7b6 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -6,7 +6,7 @@
<data>
<variable
name="viewModel"
- type="com.application.zhangshi_app_android.module.home.HomeFragmentViewModel" />
+ type="com.application.zhangshi_app_android.ui.home.HomeFragmentViewModel" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
diff --git a/app/src/main/res/layout/fragment_personal_center.xml b/app/src/main/res/layout/fragment_personal_center.xml
index fe595d0..768f701 100644
--- a/app/src/main/res/layout/fragment_personal_center.xml
+++ b/app/src/main/res/layout/fragment_personal_center.xml
@@ -4,7 +4,7 @@
<data>
<variable
name="viewModel"
- type="com.application.zhangshi_app_android.module.personal_center.PersonalCenterFragmentViewModel" />
+ type="com.application.zhangshi_app_android.ui.personal_center.PersonalCenterFragmentViewModel" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
diff --git a/app/src/main/res/layout/item_family_memorabilia.xml b/app/src/main/res/layout/item_family_memorabilia.xml
new file mode 100644
index 0000000..8d68bc2
--- /dev/null
+++ b/app/src/main/res/layout/item_family_memorabilia.xml
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <data>
+ <variable
+ name="bean"
+ type="com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean" />
+ </data>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ >
+ <androidx.cardview.widget.CardView
+ android:id="@+id/cardView"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dp_40"
+ android:layout_margin="@dimen/dp_2"
+ app:cardCornerRadius="@dimen/dp_10"
+ app:cardBackgroundColor="@color/color_card_pink"
+ >
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingHorizontal="@dimen/dp_24"
+ >
+ <LinearLayout
+ android:id="@+id/layout_title"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dp_40"
+ android:gravity="center_vertical"
+ >
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:textSize="@dimen/sp_16"
+ android:textColor="@color/black"
+ android:text="寮犳皬app绔嬮」"
+ android:layout_weight="1"
+ android:textStyle="bold"
+ />
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="@dimen/sp_16"
+ android:textColor="@color/black"
+ android:text="2023.3.1"
+ android:textStyle="bold"
+ android:gravity="end"
+ />
+
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ >
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:layout_marginBottom="@dimen/dp_6"
+ >
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="搴忓彿锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_12"
+ android:textStyle="bold"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="01"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_12"
+ android:textStyle="bold"
+ />
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:layout_marginBottom="@dimen/dp_6"
+ >
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="浜虹墿锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_12"
+ android:textStyle="bold"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="寮犱笁銆佹潕鍥涖�佸紶鍥涖�佹潕涓�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_12"
+ android:textStyle="bold"
+ />
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:layout_marginBottom="@dimen/dp_6"
+ >
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="澶囨敞锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_12"
+ android:textStyle="bold"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="椤圭洰绔嬮」"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_12"
+ android:textStyle="bold"
+ />
+ </LinearLayout>
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="@dimen/dp_6"
+ android:text="鐢靛瓙鏂囦欢锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_12"
+ android:textStyle="bold"
+ />
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:layout_marginBottom="@dimen/dp_15"
+ >
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center"
+ >
+ <ImageView
+ android:layout_width="@dimen/dp_70"
+ android:layout_height="@dimen/dp_45"
+ android:background="@drawable/img_sakura"
+ android:layout_marginBottom="@dimen/dp_6"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="sakura.jpg"
+ android:textSize="@dimen/sp_10"
+ android:textColor="@color/black"
+ />
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center"
+ android:layout_marginStart="@dimen/dp_10"
+ >
+ <ImageView
+ android:layout_width="@dimen/dp_70"
+ android:layout_height="@dimen/dp_45"
+ android:background="@drawable/img_lotus"
+ android:layout_marginBottom="@dimen/dp_6"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="lotus.jpg"
+ android:textSize="@dimen/sp_10"
+ android:textColor="@color/black"
+ />
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center"
+ android:layout_marginStart="@dimen/dp_10"
+ >
+ <androidx.cardview.widget.CardView
+ android:layout_width="@dimen/dp_70"
+ android:layout_height="@dimen/dp_45"
+ android:layout_marginBottom="@dimen/dp_6"
+ app:cardCornerRadius="@dimen/dp_5"
+ >
+ <ImageView
+ android:layout_width="@dimen/dp_70"
+ android:layout_height="@dimen/dp_45"
+ android:background="@drawable/img_sakura"
+ />
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="#52000000"
+ />
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/ic_play"
+ android:layout_gravity="center"
+ />
+ </androidx.cardview.widget.CardView>
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="sakura.mp4"
+ android:textSize="@dimen/sp_10"
+ android:textColor="@color/black"
+ />
+ </LinearLayout>
+
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginBottom="@dimen/dp_12"
+ >
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ >
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/ic_modify"
+ android:layout_gravity="center"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="淇敼"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14"
+ android:textStyle="bold"
+ android:layout_marginStart="@dimen/dp_4"
+ />
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_marginStart="@dimen/dp_52"
+ >
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/ic_delete"
+ android:layout_gravity="center"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鍒犻櫎"
+ android:textColor="#FFE86F72"
+ android:textSize="@dimen/sp_14"
+ android:textStyle="bold"
+ android:layout_marginStart="@dimen/dp_4"
+ />
+ </LinearLayout>
+ </LinearLayout>
+
+ </LinearLayout>
+ </LinearLayout>
+
+ </androidx.cardview.widget.CardView>
+
+ </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index c167fe1..07cf7fc 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -8,8 +8,11 @@
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
- <color name="color_title_background">#FFF08EBA</color>
+ <color name="color_normal_background">#FFFEF7FC</color>
+ <color name="color_title_bar_background">#FFF08EBA</color>
<color name="color_FFF08EBA_text_pink">#FFF08EBA</color>
<color name="color_FF666666_text_default">#FF666666</color>
+ <color name="color_card_pink">#FFFFE2EF</color>
+ <color name="color_card_blue">#FFE0EEFE</color>
</resources>
\ No newline at end of file
diff --git a/app_base/build.gradle b/app_base/build.gradle
index feb503b..1e25110 100644
--- a/app_base/build.gradle
+++ b/app_base/build.gradle
@@ -62,5 +62,9 @@
api 'com.geyifeng.immersionbar:immersionbar:3.2.2'
// kotlin鎵╁睍锛堝彲閫夛級
// implementation 'com.geyifeng.immersionbar:immersionbar-ktx:3.2.2'
+ //鍥剧墖鐩稿叧
+ api 'com.github.bumptech.glide:glide:4.11.0'
+ //鍐呭瓨娉勯湶宸ュ叿
+ debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.9.1'
}
\ No newline at end of file
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java
index da0d572..d7df1a6 100644
--- a/app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java
@@ -23,31 +23,31 @@
* @date 2023.03.02. 17:09
* @desc
*/
-public abstract class BaseRVAdapter<T,VDB extends ViewDataBinding> extends RecyclerView.Adapter<BaseRVAdapter.BaseViewHolder<VDB>> {
+public abstract class BaseRVAdapter<T,VDB extends ViewDataBinding,VH extends BaseRVAdapter.BaseViewHolder<VDB>> extends RecyclerView.Adapter<VH> {
/** 涓婁笅鏂囧璞� */
- private final Context mContext;
+ protected final Context mContext;
/** RecyclerView 瀵硅薄 */
- private RecyclerView mRecyclerView;
+ protected RecyclerView mRecyclerView;
/** 鏉$洰鐐瑰嚮鐩戝惉鍣� */
- private OnItemClickListener mItemClickListener;
+ protected OnItemClickListener mItemClickListener;
/** 鏉$洰闀挎寜鐩戝惉鍣� */
- private OnItemLongClickListener mItemLongClickListener;
+ protected OnItemLongClickListener mItemLongClickListener;
/**
* 璇� adapter 涓婄粦瀹氱殑婊戝姩鐩戝惉鍣�
*/
- private MyOnScrollListener myOnScrollListener;
+ protected MyOnScrollListener myOnScrollListener;
/** 鏉$洰瀛� View 鐐瑰嚮鐩戝惉鍣� */
- private SparseArray<OnChildClickListener> mChildClickListeners;
+ protected SparseArray<OnChildClickListener> mChildClickListeners;
/** 鏉$洰瀛� View 闀挎寜鐩戝惉鍣� */
- private SparseArray<OnChildLongClickListener> mChildLongClickListeners;
+ protected SparseArray<OnChildLongClickListener> mChildLongClickListeners;
/**
* 鍒楄〃鏁版嵁
*/
- private List<T> mDataList;
+ protected List<T> mDataList;
public BaseRVAdapter(Context context) {
mContext = context;
@@ -65,16 +65,17 @@
@NonNull
@Override
- public BaseViewHolder<VDB> onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
VDB itemBind = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()),getLayoutId(),parent,false);
- return new BaseViewHolder<>(itemBind);
+ return getViewHolder(itemBind);
}
protected abstract int getLayoutId();
- protected abstract void onBind(BaseViewHolder<VDB> holder, int position);
+ protected abstract void onBind(VH holder, int position);
+ protected abstract VH getViewHolder(VDB itemBind);
@Override
- public void onBindViewHolder(@NonNull BaseViewHolder<VDB> holder, int position) {
+ public void onBindViewHolder(@NonNull VH holder, int position) {
View itemView = holder.itemView;
// 璁剧疆鏉$洰鐨勭偣鍑诲拰闀挎寜浜嬩欢
if (mItemClickListener != null) {
@@ -172,7 +173,7 @@
* @param <VDB>
*/
public static class BaseViewHolder<VDB extends ViewDataBinding> extends RecyclerView.ViewHolder{
- private VDB binding;
+ protected VDB binding;
public BaseViewHolder(@NonNull View itemView) {
super(itemView);
@@ -216,9 +217,9 @@
}
}
/**
- * 浠庡ご閮� 杩藉姞涓�浜涙暟鎹� by hyz
+ * 浠庡ご閮� 杩藉姞涓�浜涙暟鎹�
*/
- public void addDataFormHead(List<T> data) {
+ public void addDataFromHead(List<T> data) {
if (data == null || data.size() == 0) {
return;
}
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/BaseFragmentAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java
similarity index 80%
rename from app_base/src/main/java/com/android/app_base/base/adapter/BaseFragmentAdapter.java
rename to app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java
index 7aa0bd4..0b809c6 100644
--- a/app_base/src/main/java/com/android/app_base/base/adapter/BaseFragmentAdapter.java
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java
@@ -1,7 +1,6 @@
package com.android.app_base.base.adapter;
import androidx.annotation.NonNull;
-import androidx.collection.CircularArray;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
@@ -12,8 +11,6 @@
import com.android.app_base.base.view.BaseFragment;
import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
@@ -22,7 +19,7 @@
* @date 2023.03.15. 14:36
* @desc
*/
-public class BaseFragmentAdapter<F extends BaseFragment> extends FragmentStateAdapter {
+public class BaseVp2FragmentAdapter<F extends BaseFragment> extends FragmentStateAdapter {
/**
@@ -50,15 +47,15 @@
private ViewPager mViewPager;
- public BaseFragmentAdapter(@NonNull FragmentActivity fragmentActivity) {
+ public BaseVp2FragmentAdapter(@NonNull FragmentActivity fragmentActivity) {
super(fragmentActivity);
}
- public BaseFragmentAdapter(@NonNull Fragment fragment) {
+ public BaseVp2FragmentAdapter(@NonNull Fragment fragment) {
super(fragment);
}
- public BaseFragmentAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
+ public BaseVp2FragmentAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
super(fragmentManager, lifecycle);
}
@@ -93,11 +90,11 @@
/**
* 娣诲姞 Fragment
*/
- public BaseFragmentAdapter<F> addFragment(F fragment) {
+ public BaseVp2FragmentAdapter<F> addFragment(F fragment) {
return addFragment(fragment, null);
}
- public BaseFragmentAdapter<F> addFragment(Fragment fragment, String title) {
+ public BaseVp2FragmentAdapter<F> addFragment(Fragment fragment, String title) {
if (fragment != null) {
mFragmentList.add(fragment);
mTitleList.add(title);
@@ -109,7 +106,7 @@
/**
* 娣诲姞鎸囧畾浣嶇疆鐨凢ragment
*/
- public BaseFragmentAdapter<F> addFragment(int index, Fragment fragment, String title) {
+ public BaseVp2FragmentAdapter<F> addFragment(int index, Fragment fragment, String title) {
if (fragment != null && index >= 0 && index <= mFragmentList.size()) {
mFragmentList.add(index, fragment);
mTitleList.add(index, title);
@@ -121,7 +118,7 @@
/**
* 鍒犻櫎
*/
- public BaseFragmentAdapter<F> removeFragment(int index) {
+ public BaseVp2FragmentAdapter<F> removeFragment(int index) {
if (index >= 0 && index < mFragmentList.size()) {
mFragmentList.remove(index);
mTitleList.remove(index);
@@ -134,7 +131,7 @@
/**
* 鍒犻櫎鎵�鏈�
*/
- public BaseFragmentAdapter<F> removeFragmentAll() {
+ public BaseVp2FragmentAdapter<F> removeFragmentAll() {
mFragmentList.clear();
mTitleList.clear();
mIds.clear();
diff --git a/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java b/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
index 2fb56c9..0c3c199 100644
--- a/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
+++ b/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
@@ -19,8 +19,11 @@
import androidx.lifecycle.ViewModelProvider;
import com.android.app_base.action.TitleBarAction;
+import com.android.app_base.base.BaseApplication;
import com.android.app_base.base.viewmodel.BaseViewModel;
import com.android.app_base.base.StateViewEnum;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.blankj.utilcode.util.AdaptScreenUtils;
import com.gyf.immersionbar.ImmersionBar;
import com.hjq.bar.OnTitleBarListener;
import com.hjq.bar.TitleBar;
@@ -64,6 +67,8 @@
initData();
//椤甸潰浜嬩欢鐩戝惉鐨勬柟娉曪紝鐢ㄤ簬ViewModel灞傝浆鍒癡iew灞傜殑浜嬩欢娉ㄥ唽
initLiveDataObserve();
+
+ ScreenSizeUtils.setCustomDensity(this, BaseApplication.getInstance());
}
@Override
@@ -231,12 +236,6 @@
mTitleBar = obtainTitleBar(findViewById(Window.ID_ANDROID_CONTENT));
}
return mTitleBar;
- }
-
- @Override
- public void onLeftClick(TitleBar titleBar) {
- TitleBarAction.super.onLeftClick(titleBar);
- onBackPressed();
}
/**
diff --git a/app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java b/app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java
index 67634fb..4576fd6 100644
--- a/app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java
+++ b/app_base/src/main/java/com/android/app_base/utils/ScreenSizeUtils.java
@@ -1,8 +1,15 @@
package com.android.app_base.utils;
+import android.app.Activity;
+import android.app.Application;
+import android.content.ComponentCallbacks;
import android.content.Context;
+import android.content.res.Configuration;
+import android.util.DisplayMetrics;
import androidx.annotation.DimenRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
/**
* @author Ljj
@@ -32,7 +39,7 @@
*/
public static int getDP(Context context,@DimenRes int dpSize){
float pxValue = context.getResources().getDimension(dpSize);//鑾峰彇瀵瑰簲璧勬簮鏂囦欢涓嬬殑sp鍊�
- //灏唒x鍊艰浆鎹㈡垚sp鍊�
+ //灏唒x鍊艰浆鎹㈡垚dp鍊�
return px2dip(context, pxValue);
}
@@ -71,4 +78,50 @@
final float scale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / scale + 0.5f);
}
+ public static int getScreenWidth(Context context){
+ DisplayMetrics dm = context.getResources().getDisplayMetrics();
+ if(dm != null)return dm.widthPixels;
+ return 0;
+ }
+ public static int getScreenHeight(Context context){
+ DisplayMetrics dm = context.getResources().getDisplayMetrics();
+ if(dm != null)return dm.heightPixels;
+ return 0;
+ }
+
+ private static float sNoncompatDensity;
+ private static float sNoncompatScaledDensity;
+ public static void setCustomDensity(@NonNull Activity activity, @NonNull final Application application){
+ final DisplayMetrics appDisplayMetrics = application.getResources().getDisplayMetrics();
+
+ if (sNoncompatDensity == 0){
+ sNoncompatDensity = appDisplayMetrics.density;
+ sNoncompatScaledDensity = appDisplayMetrics.scaledDensity;
+ application.registerComponentCallbacks(new ComponentCallbacks() {
+ @Override
+ public void onConfigurationChanged(@NonNull Configuration newConfig) {
+ if (newConfig != null && newConfig.fontScale > 0){
+ sNoncompatScaledDensity = application.getResources().getDisplayMetrics().scaledDensity;
+ }
+ }
+
+ @Override
+ public void onLowMemory() {
+
+ }
+ });
+ }
+ final float targetDensity = appDisplayMetrics.widthPixels / 360;
+ final float targetScaledDensity = targetDensity * (sNoncompatScaledDensity / sNoncompatDensity);
+ final int targetDensityDpi = (int) (160*targetDensity);
+
+ appDisplayMetrics.density = targetDensity;
+ appDisplayMetrics.scaledDensity = targetScaledDensity;
+ appDisplayMetrics.densityDpi = targetDensityDpi;
+
+ final DisplayMetrics activityDisplayMetrics = activity.getResources().getDisplayMetrics();
+ activityDisplayMetrics.density = targetDensity;
+ activityDisplayMetrics.scaledDensity = targetScaledDensity;
+ activityDisplayMetrics.densityDpi = targetDensityDpi;
+ }
}
diff --git a/app_base/src/main/java/com/android/app_base/widget/CustomScrollView.java b/app_base/src/main/java/com/android/app_base/widget/CustomScrollView.java
new file mode 100644
index 0000000..1ecc2be
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/widget/CustomScrollView.java
@@ -0,0 +1,67 @@
+package com.android.app_base.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.widget.ScrollView;
+
+
+/**
+ * @author Ljj
+ * @date 2023.03.20. 16:25
+ * @desc
+ */
+public class CustomScrollView extends ScrollView {
+ int lastX = -1;
+ int lastY = -1;
+ public CustomScrollView(Context context) {
+ super(context);
+ }
+
+ public CustomScrollView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public CustomScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ int x = (int) ev.getRawX();
+ int y = (int) ev.getRawY();
+ int dealtX = 0;
+ int dealtY = 0;
+
+ switch (ev.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ dealtX = 0;
+ dealtY = 0;
+ // 淇濊瘉瀛怴iew鑳藉鎺ユ敹鍒癆ction_move浜嬩欢
+ getParent().requestDisallowInterceptTouchEvent(true);
+ break;
+ case MotionEvent.ACTION_MOVE:
+ dealtX += Math.abs(x - lastX);
+ dealtY += Math.abs(y - lastY);
+ // 杩欓噷鏄鎷︽埅鐨勫垽鏂緷鎹槸宸﹀彸婊戝姩锛岃鑰呭彲鏍规嵁鑷繁鐨勯�昏緫杩涜鏄惁鎷︽埅
+ if (dealtX < dealtY) {
+ getParent().requestDisallowInterceptTouchEvent(true);
+ System.out.println("涓婁笅婊戝姩"+true);
+ return super.dispatchTouchEvent(ev);
+ } else {
+ getParent().requestDisallowInterceptTouchEvent(false);
+ System.out.println("宸﹀彸婊戝姩"+false);
+ }
+ lastX = x;
+ lastY = y;
+ break;
+ case MotionEvent.ACTION_CANCEL:
+ break;
+ case MotionEvent.ACTION_UP:
+ break;
+
+ }
+ return super.dispatchTouchEvent(ev);
+ }
+}
diff --git a/app_base/src/main/java/com/android/app_base/widget/CustomTextView.java b/app_base/src/main/java/com/android/app_base/widget/CustomTextView.java
new file mode 100644
index 0000000..5198a95
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/widget/CustomTextView.java
@@ -0,0 +1,89 @@
+package com.android.app_base.widget;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.LinearGradient;
+import android.graphics.Paint;
+import android.graphics.Shader;
+import android.util.AttributeSet;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatTextView;
+
+import com.android.app_base.R;
+
+
+/**
+ * 鑷畾涔塗extView
+ * 涓棿鍗婇�忔槑鍜屽甫娓愬彉杈规
+ */
+public class CustomTextView extends AppCompatTextView {
+
+ private float borderWidth;//杈规瀹藉害
+ private int borderColor;//杈规棰滆壊
+ private boolean isBorderGradient;//杈规鏄惁娓愬彉
+ private int borderStartColor;//杈规娓愬彉寮�濮嬮鑹�
+ private int borderEndColor;//杈规娓愬彉缁撴潫棰滆壊
+ private float border_radius;//杈规鍦嗚
+
+ private Paint mPaint;
+ private LinearGradient shader;
+
+ public CustomTextView(@NonNull Context context) {
+ this(context,null);
+ }
+
+ public CustomTextView(@NonNull Context context, @Nullable AttributeSet attrs) {
+ this(context, attrs,0);
+ }
+
+ public CustomTextView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomTextView);
+ borderWidth = a.getDimension(R.styleable.CustomTextView_border_width,0);
+ borderColor = a.getColor(R.styleable.CustomTextView_border_color,0);
+ isBorderGradient = a.getBoolean(R.styleable.CustomTextView_is_border_gradient,false);
+ borderStartColor = a.getColor(R.styleable.CustomTextView_border_gradient_start_color,borderColor);
+ borderEndColor = a.getColor(R.styleable.CustomTextView_border_gradient_end_color,borderColor);
+ border_radius = a.getDimension(R.styleable.CustomTextView_border_radius,0);
+ a.recycle();
+
+ //鎶楅敮榻跨敾绗�
+ mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ //闃叉杈圭紭閿娇
+ mPaint.setAntiAlias(true);
+ mPaint.setStrokeJoin(Paint.Join.ROUND);
+ //闇�瑕侀噸鍐檕nDraw灏卞緱璋冪敤姝�
+ this.setWillNotDraw(false);
+
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+
+ super.onDraw(canvas);
+ //鐢昏竟妗�
+ drawBorder(canvas);
+
+ }
+ private void drawBorder(Canvas canvas) {
+ mPaint.setStyle(Paint.Style.STROKE);
+ mPaint.setStrokeWidth(borderWidth);
+ if (isBorderGradient){
+ shader = new LinearGradient(0,0,getWidth(),0,borderStartColor,borderEndColor, Shader.TileMode.CLAMP);
+ mPaint.setShader(shader);
+ }else {
+ mPaint.setColor(borderColor);
+ }
+ if (border_radius > 0){
+ float realBorderWight = borderWidth / 2;
+ //闇�瑕佹妸鐭╁舰澶у皬宸﹀彸涓婁笅鍚勫噺鍘讳竴鍗婏紝涓嶇劧鍦嗚鏄剧ず浼氭湁闂
+ canvas.drawRoundRect(realBorderWight,realBorderWight,getWidth()-realBorderWight,getHeight()-realBorderWight,border_radius,border_radius,mPaint);
+ }else{
+ canvas.drawRect(0,0,getWidth(),getHeight(),mPaint);
+ }
+ mPaint.setShader(null);
+ }
+}
diff --git a/app_base/src/main/java/com/android/app_base/widget/LinearItemDecoration.java b/app_base/src/main/java/com/android/app_base/widget/LinearItemDecoration.java
new file mode 100644
index 0000000..24bbad4
--- /dev/null
+++ b/app_base/src/main/java/com/android/app_base/widget/LinearItemDecoration.java
@@ -0,0 +1,100 @@
+package com.android.app_base.widget;
+
+import android.graphics.Rect;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+/**
+* @author Ljj
+* @date 2023.03.18. 20:46
+* @desc
+*/public class LinearItemDecoration extends RecyclerView.ItemDecoration {
+ private int leftSpace;
+ private int rightSpace;
+ private int topSpace;
+ private int bottomSpace;
+
+ private int firstTop = -1;
+
+ public LinearItemDecoration(){
+
+ }
+
+ public LinearItemDecoration(int space) {
+ leftSpace = rightSpace = topSpace = bottomSpace = space;
+ }
+
+ public LinearItemDecoration(int horizontalSpace,int verticalSpace) {
+ rightSpace = leftSpace = horizontalSpace;
+ topSpace = bottomSpace = verticalSpace;
+ }
+
+ public LinearItemDecoration(int leftSpace, int rightSpace, int topSpace, int bottomSpace) {
+ this.leftSpace = leftSpace;
+ this.rightSpace = rightSpace;
+ this.topSpace = topSpace;
+ this.bottomSpace = bottomSpace;
+ }
+
+ @Override
+ public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
+ super.getItemOffsets(outRect, view, parent, state);
+ outRect.left = leftSpace;
+ outRect.right = rightSpace;
+ outRect.bottom = bottomSpace;
+ outRect.top = topSpace;
+ if ( firstTop != -1 && firstTop >= 0){
+ if (parent.getChildLayoutPosition(view) == 0)
+ outRect.top = firstTop;
+ }
+ }
+
+ public void setTopSpace(int topSpace) {
+ this.topSpace = topSpace;
+ }
+
+ public void setLeftSpace(int leftSpace) {
+ this.leftSpace = leftSpace;
+ }
+
+ public void setRightSpace(int rightSpace) {
+ this.rightSpace = rightSpace;
+ }
+
+ public void setBottomSpace(int bottomSpace) {
+ this.bottomSpace = bottomSpace;
+ }
+
+ public void setHorizontalSpace(int horizontalSpace){
+ rightSpace = leftSpace = horizontalSpace;
+ }
+ public void setVerticalSpace(int verticalSpace){
+ rightSpace = leftSpace = verticalSpace;
+ }
+
+ public void setFirstTop(int firstTop) {
+ this.firstTop = firstTop;
+ }
+
+ public int getLeftSpace() {
+ return leftSpace;
+ }
+
+ public int getRightSpace() {
+ return rightSpace;
+ }
+
+ public int getTopSpace() {
+ return topSpace;
+ }
+
+ public int getBottomSpace() {
+ return bottomSpace;
+ }
+
+ public int getFirstTop() {
+ return firstTop;
+ }
+}
diff --git a/app_base/src/main/res/values-sw1440dp/dimens.xml b/app_base/src/main/res/values-sw1440dp/dimens.xml
new file mode 100644
index 0000000..4c8794a
--- /dev/null
+++ b/app_base/src/main/res/values-sw1440dp/dimens.xml
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources>
+ <dimen name="common_margin">@dimen/dp_15</dimen>
+ <dimen name="dp_m_60">-240.0000dp</dimen>
+ <dimen name="dp_m_30">-120.0000dp</dimen>
+ <dimen name="dp_m_20">-80.0000dp</dimen>
+ <dimen name="dp_m_12">-48.0000dp</dimen>
+ <dimen name="dp_m_10">-40.0000dp</dimen>
+ <dimen name="dp_m_8">-32.0000dp</dimen>
+ <dimen name="dp_m_5">-20.0000dp</dimen>
+ <dimen name="dp_m_2">-8.0000dp</dimen>
+ <dimen name="dp_m_1">-4.0000dp</dimen>
+ <dimen name="dp_0">0.0000dp</dimen>
+ <dimen name="dp_0_1">0.4000dp</dimen>
+ <dimen name="dp_0_5">2.0000dp</dimen>
+ <dimen name="dp_1">4.0000dp</dimen>
+ <dimen name="dp_1_5">6.0000dp</dimen>
+ <dimen name="dp_2">8.0000dp</dimen>
+ <dimen name="dp_2_5">10.0000dp</dimen>
+ <dimen name="dp_3">12.0000dp</dimen>
+ <dimen name="dp_3_5">14.0000dp</dimen>
+ <dimen name="dp_4">16.0000dp</dimen>
+ <dimen name="dp_4_5">18.0000dp</dimen>
+ <dimen name="dp_5">20.0000dp</dimen>
+ <dimen name="dp_6">24.0000dp</dimen>
+ <dimen name="dp_7">28.0000dp</dimen>
+ <dimen name="dp_8">32.0000dp</dimen>
+ <dimen name="dp_9">36.0000dp</dimen>
+ <dimen name="dp_10">40.0000dp</dimen>
+ <dimen name="dp_11">44.0000dp</dimen>
+ <dimen name="dp_12">48.0000dp</dimen>
+ <dimen name="dp_13">52.0000dp</dimen>
+ <dimen name="dp_14">56.0000dp</dimen>
+ <dimen name="dp_15">60.0000dp</dimen>
+ <dimen name="dp_16">64.0000dp</dimen>
+ <dimen name="dp_17">68.0000dp</dimen>
+ <dimen name="dp_18">72.0000dp</dimen>
+ <dimen name="dp_19">76.0000dp</dimen>
+ <dimen name="dp_20">80.0000dp</dimen>
+ <dimen name="dp_21">84.0000dp</dimen>
+ <dimen name="dp_22">88.0000dp</dimen>
+ <dimen name="dp_23">92.0000dp</dimen>
+ <dimen name="dp_24">96.0000dp</dimen>
+ <dimen name="dp_25">100.0000dp</dimen>
+ <dimen name="dp_26">104.0000dp</dimen>
+ <dimen name="dp_27">108.0000dp</dimen>
+ <dimen name="dp_28">112.0000dp</dimen>
+ <dimen name="dp_29">116.0000dp</dimen>
+ <dimen name="dp_30">120.0000dp</dimen>
+ <dimen name="dp_31">124.0000dp</dimen>
+ <dimen name="dp_32">128.0000dp</dimen>
+ <dimen name="dp_33">132.0000dp</dimen>
+ <dimen name="dp_34">136.0000dp</dimen>
+ <dimen name="dp_35">140.0000dp</dimen>
+ <dimen name="dp_36">144.0000dp</dimen>
+ <dimen name="dp_37">148.0000dp</dimen>
+ <dimen name="dp_38">152.0000dp</dimen>
+ <dimen name="dp_39">156.0000dp</dimen>
+ <dimen name="dp_40">160.0000dp</dimen>
+ <dimen name="dp_41">164.0000dp</dimen>
+ <dimen name="dp_42">168.0000dp</dimen>
+ <dimen name="dp_43">172.0000dp</dimen>
+ <dimen name="dp_44">176.0000dp</dimen>
+ <dimen name="dp_45">180.0000dp</dimen>
+ <dimen name="dp_46">184.0000dp</dimen>
+ <dimen name="dp_47">188.0000dp</dimen>
+ <dimen name="dp_48">192.0000dp</dimen>
+ <dimen name="dp_49">196.0000dp</dimen>
+ <dimen name="dp_50">200.0000dp</dimen>
+ <dimen name="dp_51">204.0000dp</dimen>
+ <dimen name="dp_52">208.0000dp</dimen>
+ <dimen name="dp_53">212.0000dp</dimen>
+ <dimen name="dp_54">216.0000dp</dimen>
+ <dimen name="dp_55">220.0000dp</dimen>
+ <dimen name="dp_56">224.0000dp</dimen>
+ <dimen name="dp_57">228.0000dp</dimen>
+ <dimen name="dp_58">232.0000dp</dimen>
+ <dimen name="dp_59">236.0000dp</dimen>
+ <dimen name="dp_60">240.0000dp</dimen>
+ <dimen name="dp_61">244.0000dp</dimen>
+ <dimen name="dp_62">248.0000dp</dimen>
+ <dimen name="dp_63">252.0000dp</dimen>
+ <dimen name="dp_64">256.0000dp</dimen>
+ <dimen name="dp_65">260.0000dp</dimen>
+ <dimen name="dp_66">264.0000dp</dimen>
+ <dimen name="dp_67">268.0000dp</dimen>
+ <dimen name="dp_68">272.0000dp</dimen>
+ <dimen name="dp_69">276.0000dp</dimen>
+ <dimen name="dp_70">280.0000dp</dimen>
+ <dimen name="dp_71">284.0000dp</dimen>
+ <dimen name="dp_72">288.0000dp</dimen>
+ <dimen name="dp_73">292.0000dp</dimen>
+ <dimen name="dp_74">296.0000dp</dimen>
+ <dimen name="dp_75">300.0000dp</dimen>
+ <dimen name="dp_76">304.0000dp</dimen>
+ <dimen name="dp_77">308.0000dp</dimen>
+ <dimen name="dp_78">312.0000dp</dimen>
+ <dimen name="dp_79">316.0000dp</dimen>
+ <dimen name="dp_80">320.0000dp</dimen>
+ <dimen name="dp_81">324.0000dp</dimen>
+ <dimen name="dp_82">328.0000dp</dimen>
+ <dimen name="dp_83">332.0000dp</dimen>
+ <dimen name="dp_84">336.0000dp</dimen>
+ <dimen name="dp_85">340.0000dp</dimen>
+ <dimen name="dp_86">344.0000dp</dimen>
+ <dimen name="dp_87">348.0000dp</dimen>
+ <dimen name="dp_88">352.0000dp</dimen>
+ <dimen name="dp_89">356.0000dp</dimen>
+ <dimen name="dp_90">360.0000dp</dimen>
+ <dimen name="dp_91">364.0000dp</dimen>
+ <dimen name="dp_92">368.0000dp</dimen>
+ <dimen name="dp_93">372.0000dp</dimen>
+ <dimen name="dp_94">376.0000dp</dimen>
+ <dimen name="dp_95">380.0000dp</dimen>
+ <dimen name="dp_96">384.0000dp</dimen>
+ <dimen name="dp_97">388.0000dp</dimen>
+ <dimen name="dp_98">392.0000dp</dimen>
+ <dimen name="dp_99">396.0000dp</dimen>
+ <dimen name="dp_100">400.0000dp</dimen>
+ <dimen name="dp_101">404.0000dp</dimen>
+ <dimen name="dp_102">408.0000dp</dimen>
+ <dimen name="dp_103">412.0000dp</dimen>
+ <dimen name="dp_104">416.0000dp</dimen>
+ <dimen name="dp_105">420.0000dp</dimen>
+ <dimen name="dp_106">424.0000dp</dimen>
+ <dimen name="dp_107">428.0000dp</dimen>
+ <dimen name="dp_108">432.0000dp</dimen>
+ <dimen name="dp_109">436.0000dp</dimen>
+ <dimen name="dp_110">440.0000dp</dimen>
+ <dimen name="dp_111">444.0000dp</dimen>
+ <dimen name="dp_112">448.0000dp</dimen>
+ <dimen name="dp_113">452.0000dp</dimen>
+ <dimen name="dp_114">456.0000dp</dimen>
+ <dimen name="dp_115">460.0000dp</dimen>
+ <dimen name="dp_116">464.0000dp</dimen>
+ <dimen name="dp_117">468.0000dp</dimen>
+ <dimen name="dp_118">472.0000dp</dimen>
+ <dimen name="dp_119">476.0000dp</dimen>
+ <dimen name="dp_120">480.0000dp</dimen>
+ <dimen name="dp_121">484.0000dp</dimen>
+ <dimen name="dp_122">488.0000dp</dimen>
+ <dimen name="dp_123">492.0000dp</dimen>
+ <dimen name="dp_124">496.0000dp</dimen>
+ <dimen name="dp_125">500.0000dp</dimen>
+ <dimen name="dp_126">504.0000dp</dimen>
+ <dimen name="dp_127">508.0000dp</dimen>
+ <dimen name="dp_128">512.0000dp</dimen>
+ <dimen name="dp_129">516.0000dp</dimen>
+ <dimen name="dp_130">520.0000dp</dimen>
+ <dimen name="dp_131">524.0000dp</dimen>
+ <dimen name="dp_132">528.0000dp</dimen>
+ <dimen name="dp_133">532.0000dp</dimen>
+ <dimen name="dp_134">536.0000dp</dimen>
+ <dimen name="dp_135">540.0000dp</dimen>
+ <dimen name="dp_136">544.0000dp</dimen>
+ <dimen name="dp_137">548.0000dp</dimen>
+ <dimen name="dp_138">552.0000dp</dimen>
+ <dimen name="dp_139">556.0000dp</dimen>
+ <dimen name="dp_140">560.0000dp</dimen>
+ <dimen name="dp_141">564.0000dp</dimen>
+ <dimen name="dp_142">568.0000dp</dimen>
+ <dimen name="dp_143">572.0000dp</dimen>
+ <dimen name="dp_144">576.0000dp</dimen>
+ <dimen name="dp_145">580.0000dp</dimen>
+ <dimen name="dp_146">584.0000dp</dimen>
+ <dimen name="dp_147">588.0000dp</dimen>
+ <dimen name="dp_148">592.0000dp</dimen>
+ <dimen name="dp_149">596.0000dp</dimen>
+ <dimen name="dp_150">600.0000dp</dimen>
+ <dimen name="dp_151">604.0000dp</dimen>
+ <dimen name="dp_152">608.0000dp</dimen>
+ <dimen name="dp_153">612.0000dp</dimen>
+ <dimen name="dp_154">616.0000dp</dimen>
+ <dimen name="dp_155">620.0000dp</dimen>
+ <dimen name="dp_156">624.0000dp</dimen>
+ <dimen name="dp_157">628.0000dp</dimen>
+ <dimen name="dp_158">632.0000dp</dimen>
+ <dimen name="dp_159">636.0000dp</dimen>
+ <dimen name="dp_160">640.0000dp</dimen>
+ <dimen name="dp_161">644.0000dp</dimen>
+ <dimen name="dp_162">648.0000dp</dimen>
+ <dimen name="dp_163">652.0000dp</dimen>
+ <dimen name="dp_164">656.0000dp</dimen>
+ <dimen name="dp_165">660.0000dp</dimen>
+ <dimen name="dp_166">664.0000dp</dimen>
+ <dimen name="dp_167">668.0000dp</dimen>
+ <dimen name="dp_168">672.0000dp</dimen>
+ <dimen name="dp_169">676.0000dp</dimen>
+ <dimen name="dp_170">680.0000dp</dimen>
+ <dimen name="dp_171">684.0000dp</dimen>
+ <dimen name="dp_172">688.0000dp</dimen>
+ <dimen name="dp_173">692.0000dp</dimen>
+ <dimen name="dp_174">696.0000dp</dimen>
+ <dimen name="dp_175">700.0000dp</dimen>
+ <dimen name="dp_176">704.0000dp</dimen>
+ <dimen name="dp_177">708.0000dp</dimen>
+ <dimen name="dp_178">712.0000dp</dimen>
+ <dimen name="dp_179">716.0000dp</dimen>
+ <dimen name="dp_180">720.0000dp</dimen>
+ <dimen name="dp_181">724.0000dp</dimen>
+ <dimen name="dp_182">728.0000dp</dimen>
+ <dimen name="dp_183">732.0000dp</dimen>
+ <dimen name="dp_184">736.0000dp</dimen>
+ <dimen name="dp_185">740.0000dp</dimen>
+ <dimen name="dp_186">744.0000dp</dimen>
+ <dimen name="dp_187">748.0000dp</dimen>
+ <dimen name="dp_188">752.0000dp</dimen>
+ <dimen name="dp_189">756.0000dp</dimen>
+ <dimen name="dp_190">760.0000dp</dimen>
+ <dimen name="dp_191">764.0000dp</dimen>
+ <dimen name="dp_192">768.0000dp</dimen>
+ <dimen name="dp_193">772.0000dp</dimen>
+ <dimen name="dp_194">776.0000dp</dimen>
+ <dimen name="dp_195">780.0000dp</dimen>
+ <dimen name="dp_196">784.0000dp</dimen>
+ <dimen name="dp_197">788.0000dp</dimen>
+ <dimen name="dp_198">792.0000dp</dimen>
+ <dimen name="dp_199">796.0000dp</dimen>
+ <dimen name="dp_200">800.0000dp</dimen>
+ <dimen name="dp_201">804.0000dp</dimen>
+ <dimen name="dp_202">808.0000dp</dimen>
+ <dimen name="dp_203">812.0000dp</dimen>
+ <dimen name="dp_204">816.0000dp</dimen>
+ <dimen name="dp_205">820.0000dp</dimen>
+ <dimen name="dp_206">824.0000dp</dimen>
+ <dimen name="dp_207">828.0000dp</dimen>
+ <dimen name="dp_208">832.0000dp</dimen>
+ <dimen name="dp_209">836.0000dp</dimen>
+ <dimen name="dp_210">840.0000dp</dimen>
+ <dimen name="dp_211">844.0000dp</dimen>
+ <dimen name="dp_212">848.0000dp</dimen>
+ <dimen name="dp_213">852.0000dp</dimen>
+ <dimen name="dp_214">856.0000dp</dimen>
+ <dimen name="dp_215">860.0000dp</dimen>
+ <dimen name="dp_216">864.0000dp</dimen>
+ <dimen name="dp_217">868.0000dp</dimen>
+ <dimen name="dp_218">872.0000dp</dimen>
+ <dimen name="dp_219">876.0000dp</dimen>
+ <dimen name="dp_220">880.0000dp</dimen>
+ <dimen name="dp_221">884.0000dp</dimen>
+ <dimen name="dp_222">888.0000dp</dimen>
+ <dimen name="dp_223">892.0000dp</dimen>
+ <dimen name="dp_224">896.0000dp</dimen>
+ <dimen name="dp_225">900.0000dp</dimen>
+ <dimen name="dp_226">904.0000dp</dimen>
+ <dimen name="dp_227">908.0000dp</dimen>
+ <dimen name="dp_228">912.0000dp</dimen>
+ <dimen name="dp_229">916.0000dp</dimen>
+ <dimen name="dp_230">920.0000dp</dimen>
+ <dimen name="dp_231">924.0000dp</dimen>
+ <dimen name="dp_232">928.0000dp</dimen>
+ <dimen name="dp_233">932.0000dp</dimen>
+ <dimen name="dp_234">936.0000dp</dimen>
+ <dimen name="dp_235">940.0000dp</dimen>
+ <dimen name="dp_236">944.0000dp</dimen>
+ <dimen name="dp_237">948.0000dp</dimen>
+ <dimen name="dp_238">952.0000dp</dimen>
+ <dimen name="dp_239">956.0000dp</dimen>
+ <dimen name="dp_240">960.0000dp</dimen>
+ <dimen name="dp_241">964.0000dp</dimen>
+ <dimen name="dp_242">968.0000dp</dimen>
+ <dimen name="dp_243">972.0000dp</dimen>
+ <dimen name="dp_244">976.0000dp</dimen>
+ <dimen name="dp_245">980.0000dp</dimen>
+ <dimen name="dp_246">984.0000dp</dimen>
+ <dimen name="dp_247">988.0000dp</dimen>
+ <dimen name="dp_248">992.0000dp</dimen>
+ <dimen name="dp_249">996.0000dp</dimen>
+ <dimen name="dp_250">1000.0000dp</dimen>
+ <dimen name="dp_251">1004.0000dp</dimen>
+ <dimen name="dp_252">1008.0000dp</dimen>
+ <dimen name="dp_253">1012.0000dp</dimen>
+ <dimen name="dp_254">1016.0000dp</dimen>
+ <dimen name="dp_255">1020.0000dp</dimen>
+ <dimen name="dp_256">1024.0000dp</dimen>
+ <dimen name="dp_257">1028.0000dp</dimen>
+ <dimen name="dp_258">1032.0000dp</dimen>
+ <dimen name="dp_259">1036.0000dp</dimen>
+ <dimen name="dp_260">1040.0000dp</dimen>
+ <dimen name="dp_261">1044.0000dp</dimen>
+ <dimen name="dp_262">1048.0000dp</dimen>
+ <dimen name="dp_263">1052.0000dp</dimen>
+ <dimen name="dp_264">1056.0000dp</dimen>
+ <dimen name="dp_265">1060.0000dp</dimen>
+ <dimen name="dp_266">1064.0000dp</dimen>
+ <dimen name="dp_267">1068.0000dp</dimen>
+ <dimen name="dp_268">1072.0000dp</dimen>
+ <dimen name="dp_269">1076.0000dp</dimen>
+ <dimen name="dp_270">1080.0000dp</dimen>
+ <dimen name="dp_271">1084.0000dp</dimen>
+ <dimen name="dp_272">1088.0000dp</dimen>
+ <dimen name="dp_273">1092.0000dp</dimen>
+ <dimen name="dp_274">1096.0000dp</dimen>
+ <dimen name="dp_275">1100.0000dp</dimen>
+ <dimen name="dp_276">1104.0000dp</dimen>
+ <dimen name="dp_277">1108.0000dp</dimen>
+ <dimen name="dp_278">1112.0000dp</dimen>
+ <dimen name="dp_279">1116.0000dp</dimen>
+ <dimen name="dp_280">1120.0000dp</dimen>
+ <dimen name="dp_281">1124.0000dp</dimen>
+ <dimen name="dp_282">1128.0000dp</dimen>
+ <dimen name="dp_283">1132.0000dp</dimen>
+ <dimen name="dp_284">1136.0000dp</dimen>
+ <dimen name="dp_285">1140.0000dp</dimen>
+ <dimen name="dp_286">1144.0000dp</dimen>
+ <dimen name="dp_287">1148.0000dp</dimen>
+ <dimen name="dp_288">1152.0000dp</dimen>
+ <dimen name="dp_289">1156.0000dp</dimen>
+ <dimen name="dp_290">1160.0000dp</dimen>
+ <dimen name="dp_291">1164.0000dp</dimen>
+ <dimen name="dp_292">1168.0000dp</dimen>
+ <dimen name="dp_293">1172.0000dp</dimen>
+ <dimen name="dp_294">1176.0000dp</dimen>
+ <dimen name="dp_295">1180.0000dp</dimen>
+ <dimen name="dp_296">1184.0000dp</dimen>
+ <dimen name="dp_297">1188.0000dp</dimen>
+ <dimen name="dp_298">1192.0000dp</dimen>
+ <dimen name="dp_299">1196.0000dp</dimen>
+ <dimen name="dp_300">1200.0000dp</dimen>
+ <dimen name="dp_301">1204.0000dp</dimen>
+ <dimen name="dp_302">1208.0000dp</dimen>
+ <dimen name="dp_303">1212.0000dp</dimen>
+ <dimen name="dp_304">1216.0000dp</dimen>
+ <dimen name="dp_305">1220.0000dp</dimen>
+ <dimen name="dp_306">1224.0000dp</dimen>
+ <dimen name="dp_307">1228.0000dp</dimen>
+ <dimen name="dp_308">1232.0000dp</dimen>
+ <dimen name="dp_309">1236.0000dp</dimen>
+ <dimen name="dp_310">1240.0000dp</dimen>
+ <dimen name="dp_311">1244.0000dp</dimen>
+ <dimen name="dp_312">1248.0000dp</dimen>
+ <dimen name="dp_313">1252.0000dp</dimen>
+ <dimen name="dp_314">1256.0000dp</dimen>
+ <dimen name="dp_315">1260.0000dp</dimen>
+ <dimen name="dp_316">1264.0000dp</dimen>
+ <dimen name="dp_317">1268.0000dp</dimen>
+ <dimen name="dp_318">1272.0000dp</dimen>
+ <dimen name="dp_319">1276.0000dp</dimen>
+ <dimen name="dp_320">1280.0000dp</dimen>
+ <dimen name="dp_321">1284.0000dp</dimen>
+ <dimen name="dp_322">1288.0000dp</dimen>
+ <dimen name="dp_323">1292.0000dp</dimen>
+ <dimen name="dp_324">1296.0000dp</dimen>
+ <dimen name="dp_325">1300.0000dp</dimen>
+ <dimen name="dp_326">1304.0000dp</dimen>
+ <dimen name="dp_327">1308.0000dp</dimen>
+ <dimen name="dp_328">1312.0000dp</dimen>
+ <dimen name="dp_329">1316.0000dp</dimen>
+ <dimen name="dp_330">1320.0000dp</dimen>
+ <dimen name="dp_331">1324.0000dp</dimen>
+ <dimen name="dp_332">1328.0000dp</dimen>
+ <dimen name="dp_333">1332.0000dp</dimen>
+ <dimen name="dp_334">1336.0000dp</dimen>
+ <dimen name="dp_335">1340.0000dp</dimen>
+ <dimen name="dp_336">1344.0000dp</dimen>
+ <dimen name="dp_337">1348.0000dp</dimen>
+ <dimen name="dp_338">1352.0000dp</dimen>
+ <dimen name="dp_339">1356.0000dp</dimen>
+ <dimen name="dp_340">1360.0000dp</dimen>
+ <dimen name="dp_341">1364.0000dp</dimen>
+ <dimen name="dp_342">1368.0000dp</dimen>
+ <dimen name="dp_343">1372.0000dp</dimen>
+ <dimen name="dp_344">1376.0000dp</dimen>
+ <dimen name="dp_345">1380.0000dp</dimen>
+ <dimen name="dp_346">1384.0000dp</dimen>
+ <dimen name="dp_347">1388.0000dp</dimen>
+ <dimen name="dp_348">1392.0000dp</dimen>
+ <dimen name="dp_349">1396.0000dp</dimen>
+ <dimen name="dp_350">1400.0000dp</dimen>
+ <dimen name="dp_351">1404.0000dp</dimen>
+ <dimen name="dp_352">1408.0000dp</dimen>
+ <dimen name="dp_353">1412.0000dp</dimen>
+ <dimen name="dp_354">1416.0000dp</dimen>
+ <dimen name="dp_355">1420.0000dp</dimen>
+ <dimen name="dp_356">1424.0000dp</dimen>
+ <dimen name="dp_357">1428.0000dp</dimen>
+ <dimen name="dp_358">1432.0000dp</dimen>
+ <dimen name="dp_359">1436.0000dp</dimen>
+ <dimen name="dp_360">1440.0000dp</dimen>
+ <dimen name="dp_365">1460.0000dp</dimen>
+ <dimen name="dp_370">1480.0000dp</dimen>
+ <dimen name="dp_400">1600.0000dp</dimen>
+ <dimen name="dp_410">1640.0000dp</dimen>
+ <dimen name="dp_422">1688.0000dp</dimen>
+ <dimen name="dp_472">1888.0000dp</dimen>
+ <dimen name="dp_500">2000.0000dp</dimen>
+ <dimen name="dp_600">2400.0000dp</dimen>
+ <dimen name="dp_640">2560.0000dp</dimen>
+ <dimen name="dp_720">2880.0000dp</dimen>
+ <dimen name="sp_6">24.0000sp</dimen>
+ <dimen name="sp_7">28.0000sp</dimen>
+ <dimen name="sp_8">32.0000sp</dimen>
+ <dimen name="sp_9">36.0000sp</dimen>
+ <dimen name="sp_10">40.0000sp</dimen>
+ <dimen name="sp_11">44.0000sp</dimen>
+ <dimen name="sp_12">48.0000sp</dimen>
+ <dimen name="sp_13">52.0000sp</dimen>
+ <dimen name="sp_14">56.0000sp</dimen>
+ <dimen name="sp_15">60.0000sp</dimen>
+ <dimen name="sp_16">64.0000sp</dimen>
+ <dimen name="sp_17">68.0000sp</dimen>
+ <dimen name="sp_18">72.0000sp</dimen>
+ <dimen name="sp_19">76.0000sp</dimen>
+ <dimen name="sp_20">80.0000sp</dimen>
+ <dimen name="sp_21">84.0000sp</dimen>
+ <dimen name="sp_22">88.0000sp</dimen>
+ <dimen name="sp_23">92.0000sp</dimen>
+ <dimen name="sp_24">96.0000sp</dimen>
+ <dimen name="sp_25">100.0000sp</dimen>
+ <dimen name="sp_28">112.0000sp</dimen>
+ <dimen name="sp_30">120.0000sp</dimen>
+ <dimen name="sp_32">128.0000sp</dimen>
+ <dimen name="sp_34">136.0000sp</dimen>
+ <dimen name="sp_36">144.0000sp</dimen>
+ <dimen name="sp_38">152.0000sp</dimen>
+ <dimen name="sp_40">160.0000sp</dimen>
+ <dimen name="sp_42">168.0000sp</dimen>
+ <dimen name="sp_48">192.0000sp</dimen>
+</resources>
\ No newline at end of file
diff --git a/app_base/src/main/res/values-sw360dp/dimens.xml b/app_base/src/main/res/values-sw360dp/dimens.xml
new file mode 100644
index 0000000..67038b6
--- /dev/null
+++ b/app_base/src/main/res/values-sw360dp/dimens.xml
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources>
+ <dimen name="common_margin">@dimen/dp_15</dimen>
+ <dimen name="dp_m_60">-60.0000dp</dimen>
+ <dimen name="dp_m_30">-30.0000dp</dimen>
+ <dimen name="dp_m_20">-20.0000dp</dimen>
+ <dimen name="dp_m_12">-12.0000dp</dimen>
+ <dimen name="dp_m_10">-10.0000dp</dimen>
+ <dimen name="dp_m_8">-8.0000dp</dimen>
+ <dimen name="dp_m_5">-5.0000dp</dimen>
+ <dimen name="dp_m_2">-2.0000dp</dimen>
+ <dimen name="dp_m_1">-1.0000dp</dimen>
+ <dimen name="dp_0">0.0000dp</dimen>
+ <dimen name="dp_0_1">0.1000dp</dimen>
+ <dimen name="dp_0_5">0.5000dp</dimen>
+ <dimen name="dp_1">1.0000dp</dimen>
+ <dimen name="dp_1_5">1.5000dp</dimen>
+ <dimen name="dp_2">2.0000dp</dimen>
+ <dimen name="dp_2_5">2.5000dp</dimen>
+ <dimen name="dp_3">3.0000dp</dimen>
+ <dimen name="dp_3_5">3.5000dp</dimen>
+ <dimen name="dp_4">4.0000dp</dimen>
+ <dimen name="dp_4_5">4.5000dp</dimen>
+ <dimen name="dp_5">5.0000dp</dimen>
+ <dimen name="dp_6">6.0000dp</dimen>
+ <dimen name="dp_7">7.0000dp</dimen>
+ <dimen name="dp_8">8.0000dp</dimen>
+ <dimen name="dp_9">9.0000dp</dimen>
+ <dimen name="dp_10">10.0000dp</dimen>
+ <dimen name="dp_11">11.0000dp</dimen>
+ <dimen name="dp_12">12.0000dp</dimen>
+ <dimen name="dp_13">13.0000dp</dimen>
+ <dimen name="dp_14">14.0000dp</dimen>
+ <dimen name="dp_15">15.0000dp</dimen>
+ <dimen name="dp_16">16.0000dp</dimen>
+ <dimen name="dp_17">17.0000dp</dimen>
+ <dimen name="dp_18">18.0000dp</dimen>
+ <dimen name="dp_19">19.0000dp</dimen>
+ <dimen name="dp_20">20.0000dp</dimen>
+ <dimen name="dp_21">21.0000dp</dimen>
+ <dimen name="dp_22">22.0000dp</dimen>
+ <dimen name="dp_23">23.0000dp</dimen>
+ <dimen name="dp_24">24.0000dp</dimen>
+ <dimen name="dp_25">25.0000dp</dimen>
+ <dimen name="dp_26">26.0000dp</dimen>
+ <dimen name="dp_27">27.0000dp</dimen>
+ <dimen name="dp_28">28.0000dp</dimen>
+ <dimen name="dp_29">29.0000dp</dimen>
+ <dimen name="dp_30">30.0000dp</dimen>
+ <dimen name="dp_31">31.0000dp</dimen>
+ <dimen name="dp_32">32.0000dp</dimen>
+ <dimen name="dp_33">33.0000dp</dimen>
+ <dimen name="dp_34">34.0000dp</dimen>
+ <dimen name="dp_35">35.0000dp</dimen>
+ <dimen name="dp_36">36.0000dp</dimen>
+ <dimen name="dp_37">37.0000dp</dimen>
+ <dimen name="dp_38">38.0000dp</dimen>
+ <dimen name="dp_39">39.0000dp</dimen>
+ <dimen name="dp_40">40.0000dp</dimen>
+ <dimen name="dp_41">41.0000dp</dimen>
+ <dimen name="dp_42">42.0000dp</dimen>
+ <dimen name="dp_43">43.0000dp</dimen>
+ <dimen name="dp_44">44.0000dp</dimen>
+ <dimen name="dp_45">45.0000dp</dimen>
+ <dimen name="dp_46">46.0000dp</dimen>
+ <dimen name="dp_47">47.0000dp</dimen>
+ <dimen name="dp_48">48.0000dp</dimen>
+ <dimen name="dp_49">49.0000dp</dimen>
+ <dimen name="dp_50">50.0000dp</dimen>
+ <dimen name="dp_51">51.0000dp</dimen>
+ <dimen name="dp_52">52.0000dp</dimen>
+ <dimen name="dp_53">53.0000dp</dimen>
+ <dimen name="dp_54">54.0000dp</dimen>
+ <dimen name="dp_55">55.0000dp</dimen>
+ <dimen name="dp_56">56.0000dp</dimen>
+ <dimen name="dp_57">57.0000dp</dimen>
+ <dimen name="dp_58">58.0000dp</dimen>
+ <dimen name="dp_59">59.0000dp</dimen>
+ <dimen name="dp_60">60.0000dp</dimen>
+ <dimen name="dp_61">61.0000dp</dimen>
+ <dimen name="dp_62">62.0000dp</dimen>
+ <dimen name="dp_63">63.0000dp</dimen>
+ <dimen name="dp_64">64.0000dp</dimen>
+ <dimen name="dp_65">65.0000dp</dimen>
+ <dimen name="dp_66">66.0000dp</dimen>
+ <dimen name="dp_67">67.0000dp</dimen>
+ <dimen name="dp_68">68.0000dp</dimen>
+ <dimen name="dp_69">69.0000dp</dimen>
+ <dimen name="dp_70">70.0000dp</dimen>
+ <dimen name="dp_71">71.0000dp</dimen>
+ <dimen name="dp_72">72.0000dp</dimen>
+ <dimen name="dp_73">73.0000dp</dimen>
+ <dimen name="dp_74">74.0000dp</dimen>
+ <dimen name="dp_75">75.0000dp</dimen>
+ <dimen name="dp_76">76.0000dp</dimen>
+ <dimen name="dp_77">77.0000dp</dimen>
+ <dimen name="dp_78">78.0000dp</dimen>
+ <dimen name="dp_79">79.0000dp</dimen>
+ <dimen name="dp_80">80.0000dp</dimen>
+ <dimen name="dp_81">81.0000dp</dimen>
+ <dimen name="dp_82">82.0000dp</dimen>
+ <dimen name="dp_83">83.0000dp</dimen>
+ <dimen name="dp_84">84.0000dp</dimen>
+ <dimen name="dp_85">85.0000dp</dimen>
+ <dimen name="dp_86">86.0000dp</dimen>
+ <dimen name="dp_87">87.0000dp</dimen>
+ <dimen name="dp_88">88.0000dp</dimen>
+ <dimen name="dp_89">89.0000dp</dimen>
+ <dimen name="dp_90">90.0000dp</dimen>
+ <dimen name="dp_91">91.0000dp</dimen>
+ <dimen name="dp_92">92.0000dp</dimen>
+ <dimen name="dp_93">93.0000dp</dimen>
+ <dimen name="dp_94">94.0000dp</dimen>
+ <dimen name="dp_95">95.0000dp</dimen>
+ <dimen name="dp_96">96.0000dp</dimen>
+ <dimen name="dp_97">97.0000dp</dimen>
+ <dimen name="dp_98">98.0000dp</dimen>
+ <dimen name="dp_99">99.0000dp</dimen>
+ <dimen name="dp_100">100.0000dp</dimen>
+ <dimen name="dp_101">101.0000dp</dimen>
+ <dimen name="dp_102">102.0000dp</dimen>
+ <dimen name="dp_103">103.0000dp</dimen>
+ <dimen name="dp_104">104.0000dp</dimen>
+ <dimen name="dp_105">105.0000dp</dimen>
+ <dimen name="dp_106">106.0000dp</dimen>
+ <dimen name="dp_107">107.0000dp</dimen>
+ <dimen name="dp_108">108.0000dp</dimen>
+ <dimen name="dp_109">109.0000dp</dimen>
+ <dimen name="dp_110">110.0000dp</dimen>
+ <dimen name="dp_111">111.0000dp</dimen>
+ <dimen name="dp_112">112.0000dp</dimen>
+ <dimen name="dp_113">113.0000dp</dimen>
+ <dimen name="dp_114">114.0000dp</dimen>
+ <dimen name="dp_115">115.0000dp</dimen>
+ <dimen name="dp_116">116.0000dp</dimen>
+ <dimen name="dp_117">117.0000dp</dimen>
+ <dimen name="dp_118">118.0000dp</dimen>
+ <dimen name="dp_119">119.0000dp</dimen>
+ <dimen name="dp_120">120.0000dp</dimen>
+ <dimen name="dp_121">121.0000dp</dimen>
+ <dimen name="dp_122">122.0000dp</dimen>
+ <dimen name="dp_123">123.0000dp</dimen>
+ <dimen name="dp_124">124.0000dp</dimen>
+ <dimen name="dp_125">125.0000dp</dimen>
+ <dimen name="dp_126">126.0000dp</dimen>
+ <dimen name="dp_127">127.0000dp</dimen>
+ <dimen name="dp_128">128.0000dp</dimen>
+ <dimen name="dp_129">129.0000dp</dimen>
+ <dimen name="dp_130">130.0000dp</dimen>
+ <dimen name="dp_131">131.0000dp</dimen>
+ <dimen name="dp_132">132.0000dp</dimen>
+ <dimen name="dp_133">133.0000dp</dimen>
+ <dimen name="dp_134">134.0000dp</dimen>
+ <dimen name="dp_135">135.0000dp</dimen>
+ <dimen name="dp_136">136.0000dp</dimen>
+ <dimen name="dp_137">137.0000dp</dimen>
+ <dimen name="dp_138">138.0000dp</dimen>
+ <dimen name="dp_139">139.0000dp</dimen>
+ <dimen name="dp_140">140.0000dp</dimen>
+ <dimen name="dp_141">141.0000dp</dimen>
+ <dimen name="dp_142">142.0000dp</dimen>
+ <dimen name="dp_143">143.0000dp</dimen>
+ <dimen name="dp_144">144.0000dp</dimen>
+ <dimen name="dp_145">145.0000dp</dimen>
+ <dimen name="dp_146">146.0000dp</dimen>
+ <dimen name="dp_147">147.0000dp</dimen>
+ <dimen name="dp_148">148.0000dp</dimen>
+ <dimen name="dp_149">149.0000dp</dimen>
+ <dimen name="dp_150">150.0000dp</dimen>
+ <dimen name="dp_151">151.0000dp</dimen>
+ <dimen name="dp_152">152.0000dp</dimen>
+ <dimen name="dp_153">153.0000dp</dimen>
+ <dimen name="dp_154">154.0000dp</dimen>
+ <dimen name="dp_155">155.0000dp</dimen>
+ <dimen name="dp_156">156.0000dp</dimen>
+ <dimen name="dp_157">157.0000dp</dimen>
+ <dimen name="dp_158">158.0000dp</dimen>
+ <dimen name="dp_159">159.0000dp</dimen>
+ <dimen name="dp_160">160.0000dp</dimen>
+ <dimen name="dp_161">161.0000dp</dimen>
+ <dimen name="dp_162">162.0000dp</dimen>
+ <dimen name="dp_163">163.0000dp</dimen>
+ <dimen name="dp_164">164.0000dp</dimen>
+ <dimen name="dp_165">165.0000dp</dimen>
+ <dimen name="dp_166">166.0000dp</dimen>
+ <dimen name="dp_167">167.0000dp</dimen>
+ <dimen name="dp_168">168.0000dp</dimen>
+ <dimen name="dp_169">169.0000dp</dimen>
+ <dimen name="dp_170">170.0000dp</dimen>
+ <dimen name="dp_171">171.0000dp</dimen>
+ <dimen name="dp_172">172.0000dp</dimen>
+ <dimen name="dp_173">173.0000dp</dimen>
+ <dimen name="dp_174">174.0000dp</dimen>
+ <dimen name="dp_175">175.0000dp</dimen>
+ <dimen name="dp_176">176.0000dp</dimen>
+ <dimen name="dp_177">177.0000dp</dimen>
+ <dimen name="dp_178">178.0000dp</dimen>
+ <dimen name="dp_179">179.0000dp</dimen>
+ <dimen name="dp_180">180.0000dp</dimen>
+ <dimen name="dp_181">181.0000dp</dimen>
+ <dimen name="dp_182">182.0000dp</dimen>
+ <dimen name="dp_183">183.0000dp</dimen>
+ <dimen name="dp_184">184.0000dp</dimen>
+ <dimen name="dp_185">185.0000dp</dimen>
+ <dimen name="dp_186">186.0000dp</dimen>
+ <dimen name="dp_187">187.0000dp</dimen>
+ <dimen name="dp_188">188.0000dp</dimen>
+ <dimen name="dp_189">189.0000dp</dimen>
+ <dimen name="dp_190">190.0000dp</dimen>
+ <dimen name="dp_191">191.0000dp</dimen>
+ <dimen name="dp_192">192.0000dp</dimen>
+ <dimen name="dp_193">193.0000dp</dimen>
+ <dimen name="dp_194">194.0000dp</dimen>
+ <dimen name="dp_195">195.0000dp</dimen>
+ <dimen name="dp_196">196.0000dp</dimen>
+ <dimen name="dp_197">197.0000dp</dimen>
+ <dimen name="dp_198">198.0000dp</dimen>
+ <dimen name="dp_199">199.0000dp</dimen>
+ <dimen name="dp_200">200.0000dp</dimen>
+ <dimen name="dp_201">201.0000dp</dimen>
+ <dimen name="dp_202">202.0000dp</dimen>
+ <dimen name="dp_203">203.0000dp</dimen>
+ <dimen name="dp_204">204.0000dp</dimen>
+ <dimen name="dp_205">205.0000dp</dimen>
+ <dimen name="dp_206">206.0000dp</dimen>
+ <dimen name="dp_207">207.0000dp</dimen>
+ <dimen name="dp_208">208.0000dp</dimen>
+ <dimen name="dp_209">209.0000dp</dimen>
+ <dimen name="dp_210">210.0000dp</dimen>
+ <dimen name="dp_211">211.0000dp</dimen>
+ <dimen name="dp_212">212.0000dp</dimen>
+ <dimen name="dp_213">213.0000dp</dimen>
+ <dimen name="dp_214">214.0000dp</dimen>
+ <dimen name="dp_215">215.0000dp</dimen>
+ <dimen name="dp_216">216.0000dp</dimen>
+ <dimen name="dp_217">217.0000dp</dimen>
+ <dimen name="dp_218">218.0000dp</dimen>
+ <dimen name="dp_219">219.0000dp</dimen>
+ <dimen name="dp_220">220.0000dp</dimen>
+ <dimen name="dp_221">221.0000dp</dimen>
+ <dimen name="dp_222">222.0000dp</dimen>
+ <dimen name="dp_223">223.0000dp</dimen>
+ <dimen name="dp_224">224.0000dp</dimen>
+ <dimen name="dp_225">225.0000dp</dimen>
+ <dimen name="dp_226">226.0000dp</dimen>
+ <dimen name="dp_227">227.0000dp</dimen>
+ <dimen name="dp_228">228.0000dp</dimen>
+ <dimen name="dp_229">229.0000dp</dimen>
+ <dimen name="dp_230">230.0000dp</dimen>
+ <dimen name="dp_231">231.0000dp</dimen>
+ <dimen name="dp_232">232.0000dp</dimen>
+ <dimen name="dp_233">233.0000dp</dimen>
+ <dimen name="dp_234">234.0000dp</dimen>
+ <dimen name="dp_235">235.0000dp</dimen>
+ <dimen name="dp_236">236.0000dp</dimen>
+ <dimen name="dp_237">237.0000dp</dimen>
+ <dimen name="dp_238">238.0000dp</dimen>
+ <dimen name="dp_239">239.0000dp</dimen>
+ <dimen name="dp_240">240.0000dp</dimen>
+ <dimen name="dp_241">241.0000dp</dimen>
+ <dimen name="dp_242">242.0000dp</dimen>
+ <dimen name="dp_243">243.0000dp</dimen>
+ <dimen name="dp_244">244.0000dp</dimen>
+ <dimen name="dp_245">245.0000dp</dimen>
+ <dimen name="dp_246">246.0000dp</dimen>
+ <dimen name="dp_247">247.0000dp</dimen>
+ <dimen name="dp_248">248.0000dp</dimen>
+ <dimen name="dp_249">249.0000dp</dimen>
+ <dimen name="dp_250">250.0000dp</dimen>
+ <dimen name="dp_251">251.0000dp</dimen>
+ <dimen name="dp_252">252.0000dp</dimen>
+ <dimen name="dp_253">253.0000dp</dimen>
+ <dimen name="dp_254">254.0000dp</dimen>
+ <dimen name="dp_255">255.0000dp</dimen>
+ <dimen name="dp_256">256.0000dp</dimen>
+ <dimen name="dp_257">257.0000dp</dimen>
+ <dimen name="dp_258">258.0000dp</dimen>
+ <dimen name="dp_259">259.0000dp</dimen>
+ <dimen name="dp_260">260.0000dp</dimen>
+ <dimen name="dp_261">261.0000dp</dimen>
+ <dimen name="dp_262">262.0000dp</dimen>
+ <dimen name="dp_263">263.0000dp</dimen>
+ <dimen name="dp_264">264.0000dp</dimen>
+ <dimen name="dp_265">265.0000dp</dimen>
+ <dimen name="dp_266">266.0000dp</dimen>
+ <dimen name="dp_267">267.0000dp</dimen>
+ <dimen name="dp_268">268.0000dp</dimen>
+ <dimen name="dp_269">269.0000dp</dimen>
+ <dimen name="dp_270">270.0000dp</dimen>
+ <dimen name="dp_271">271.0000dp</dimen>
+ <dimen name="dp_272">272.0000dp</dimen>
+ <dimen name="dp_273">273.0000dp</dimen>
+ <dimen name="dp_274">274.0000dp</dimen>
+ <dimen name="dp_275">275.0000dp</dimen>
+ <dimen name="dp_276">276.0000dp</dimen>
+ <dimen name="dp_277">277.0000dp</dimen>
+ <dimen name="dp_278">278.0000dp</dimen>
+ <dimen name="dp_279">279.0000dp</dimen>
+ <dimen name="dp_280">280.0000dp</dimen>
+ <dimen name="dp_281">281.0000dp</dimen>
+ <dimen name="dp_282">282.0000dp</dimen>
+ <dimen name="dp_283">283.0000dp</dimen>
+ <dimen name="dp_284">284.0000dp</dimen>
+ <dimen name="dp_285">285.0000dp</dimen>
+ <dimen name="dp_286">286.0000dp</dimen>
+ <dimen name="dp_287">287.0000dp</dimen>
+ <dimen name="dp_288">288.0000dp</dimen>
+ <dimen name="dp_289">289.0000dp</dimen>
+ <dimen name="dp_290">290.0000dp</dimen>
+ <dimen name="dp_291">291.0000dp</dimen>
+ <dimen name="dp_292">292.0000dp</dimen>
+ <dimen name="dp_293">293.0000dp</dimen>
+ <dimen name="dp_294">294.0000dp</dimen>
+ <dimen name="dp_295">295.0000dp</dimen>
+ <dimen name="dp_296">296.0000dp</dimen>
+ <dimen name="dp_297">297.0000dp</dimen>
+ <dimen name="dp_298">298.0000dp</dimen>
+ <dimen name="dp_299">299.0000dp</dimen>
+ <dimen name="dp_300">300.0000dp</dimen>
+ <dimen name="dp_301">301.0000dp</dimen>
+ <dimen name="dp_302">302.0000dp</dimen>
+ <dimen name="dp_303">303.0000dp</dimen>
+ <dimen name="dp_304">304.0000dp</dimen>
+ <dimen name="dp_305">305.0000dp</dimen>
+ <dimen name="dp_306">306.0000dp</dimen>
+ <dimen name="dp_307">307.0000dp</dimen>
+ <dimen name="dp_308">308.0000dp</dimen>
+ <dimen name="dp_309">309.0000dp</dimen>
+ <dimen name="dp_310">310.0000dp</dimen>
+ <dimen name="dp_311">311.0000dp</dimen>
+ <dimen name="dp_312">312.0000dp</dimen>
+ <dimen name="dp_313">313.0000dp</dimen>
+ <dimen name="dp_314">314.0000dp</dimen>
+ <dimen name="dp_315">315.0000dp</dimen>
+ <dimen name="dp_316">316.0000dp</dimen>
+ <dimen name="dp_317">317.0000dp</dimen>
+ <dimen name="dp_318">318.0000dp</dimen>
+ <dimen name="dp_319">319.0000dp</dimen>
+ <dimen name="dp_320">320.0000dp</dimen>
+ <dimen name="dp_321">321.0000dp</dimen>
+ <dimen name="dp_322">322.0000dp</dimen>
+ <dimen name="dp_323">323.0000dp</dimen>
+ <dimen name="dp_324">324.0000dp</dimen>
+ <dimen name="dp_325">325.0000dp</dimen>
+ <dimen name="dp_326">326.0000dp</dimen>
+ <dimen name="dp_327">327.0000dp</dimen>
+ <dimen name="dp_328">328.0000dp</dimen>
+ <dimen name="dp_329">329.0000dp</dimen>
+ <dimen name="dp_330">330.0000dp</dimen>
+ <dimen name="dp_331">331.0000dp</dimen>
+ <dimen name="dp_332">332.0000dp</dimen>
+ <dimen name="dp_333">333.0000dp</dimen>
+ <dimen name="dp_334">334.0000dp</dimen>
+ <dimen name="dp_335">335.0000dp</dimen>
+ <dimen name="dp_336">336.0000dp</dimen>
+ <dimen name="dp_337">337.0000dp</dimen>
+ <dimen name="dp_338">338.0000dp</dimen>
+ <dimen name="dp_339">339.0000dp</dimen>
+ <dimen name="dp_340">340.0000dp</dimen>
+ <dimen name="dp_341">341.0000dp</dimen>
+ <dimen name="dp_342">342.0000dp</dimen>
+ <dimen name="dp_343">343.0000dp</dimen>
+ <dimen name="dp_344">344.0000dp</dimen>
+ <dimen name="dp_345">345.0000dp</dimen>
+ <dimen name="dp_346">346.0000dp</dimen>
+ <dimen name="dp_347">347.0000dp</dimen>
+ <dimen name="dp_348">348.0000dp</dimen>
+ <dimen name="dp_349">349.0000dp</dimen>
+ <dimen name="dp_350">350.0000dp</dimen>
+ <dimen name="dp_351">351.0000dp</dimen>
+ <dimen name="dp_352">352.0000dp</dimen>
+ <dimen name="dp_353">353.0000dp</dimen>
+ <dimen name="dp_354">354.0000dp</dimen>
+ <dimen name="dp_355">355.0000dp</dimen>
+ <dimen name="dp_356">356.0000dp</dimen>
+ <dimen name="dp_357">357.0000dp</dimen>
+ <dimen name="dp_358">358.0000dp</dimen>
+ <dimen name="dp_359">359.0000dp</dimen>
+ <dimen name="dp_360">360.0000dp</dimen>
+ <dimen name="dp_365">365.0000dp</dimen>
+ <dimen name="dp_370">370.0000dp</dimen>
+ <dimen name="dp_400">400.0000dp</dimen>
+ <dimen name="dp_410">410.0000dp</dimen>
+ <dimen name="dp_422">422.0000dp</dimen>
+ <dimen name="dp_472">472.0000dp</dimen>
+ <dimen name="dp_500">500.0000dp</dimen>
+ <dimen name="dp_600">600.0000dp</dimen>
+ <dimen name="dp_640">640.0000dp</dimen>
+ <dimen name="dp_720">720.0000dp</dimen>
+ <dimen name="sp_6">6.0000sp</dimen>
+ <dimen name="sp_7">7.0000sp</dimen>
+ <dimen name="sp_8">8.0000sp</dimen>
+ <dimen name="sp_9">9.0000sp</dimen>
+ <dimen name="sp_10">10.0000sp</dimen>
+ <dimen name="sp_11">11.0000sp</dimen>
+ <dimen name="sp_12">12.0000sp</dimen>
+ <dimen name="sp_13">13.0000sp</dimen>
+ <dimen name="sp_14">14.0000sp</dimen>
+ <dimen name="sp_15">15.0000sp</dimen>
+ <dimen name="sp_16">16.0000sp</dimen>
+ <dimen name="sp_17">17.0000sp</dimen>
+ <dimen name="sp_18">18.0000sp</dimen>
+ <dimen name="sp_19">19.0000sp</dimen>
+ <dimen name="sp_20">20.0000sp</dimen>
+ <dimen name="sp_21">21.0000sp</dimen>
+ <dimen name="sp_22">22.0000sp</dimen>
+ <dimen name="sp_23">23.0000sp</dimen>
+ <dimen name="sp_24">24.0000sp</dimen>
+ <dimen name="sp_25">25.0000sp</dimen>
+ <dimen name="sp_28">28.0000sp</dimen>
+ <dimen name="sp_30">30.0000sp</dimen>
+ <dimen name="sp_32">32.0000sp</dimen>
+ <dimen name="sp_34">34.0000sp</dimen>
+ <dimen name="sp_36">36.0000sp</dimen>
+ <dimen name="sp_38">38.0000sp</dimen>
+ <dimen name="sp_40">40.0000sp</dimen>
+ <dimen name="sp_42">42.0000sp</dimen>
+ <dimen name="sp_48">48.0000sp</dimen>
+</resources>
\ No newline at end of file
diff --git a/app_base/src/main/res/values/arrts.xml b/app_base/src/main/res/values/arrts.xml
new file mode 100644
index 0000000..c756bd0
--- /dev/null
+++ b/app_base/src/main/res/values/arrts.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <declare-styleable name="CustomTextView">
+ <attr name="border_color" format="color"/>
+ <attr name="is_border_gradient" format="boolean"/>
+ <attr name="border_gradient_start_color" format="color"/>
+ <attr name="border_gradient_end_color" format="color"/>
+ <attr name="border_width" format="dimension"/>
+ <attr name="border_radius" format="dimension"/>
+ </declare-styleable>
+
+</resources>
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index e93d990..a3c1f6c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,6 +10,14 @@
allowInsecureProtocol = true
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
+ maven {
+ allowInsecureProtocol = true
+ url 'https://maven.aliyun.com/repository/google'
+ }
+ maven {
+ allowInsecureProtocol = true
+ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
+ }
jcenter()
}
dependencies {
@@ -19,8 +27,8 @@
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
-
}
+
task clean(type: Delete) {
delete rootProject.buildDir
}
\ No newline at end of file
diff --git a/screenMatch.properties b/screenMatch.properties
index 3d17b42..ed439c8 100644
--- a/screenMatch.properties
+++ b/screenMatch.properties
@@ -19,7 +19,7 @@
# Also need to match the phone screen of [match_dp].
# If you have another dp values.
# System default values is 240,320,360,384,392.7272,400,410,411.4285,432,480,533,592,600,640,662,720,768,800,811,820,960,961,1024,1280,1365
-match_dp=
+match_dp=240,320,360,384,392.7272,400,410,411.4285,432,480,533,592,600,640,662,720,768,800,811,820,960,961,1024,1280,1365,1440
# If you not wanna to match dp values above. Write some above values here, append value with "," .
# For example: 811,961,1365
ignore_dp=
--
Gitblit v1.9.1