Skip to content

Commit

Permalink
加入lottie,优化用户体验
Browse files Browse the repository at this point in the history
升级项目版本
  • Loading branch information
zhujiang2 committed Mar 10, 2022
1 parent 2f1b5c9 commit 4be61af
Show file tree
Hide file tree
Showing 15 changed files with 100 additions and 96 deletions.
4 changes: 4 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions app/src/main/java/com/zj/play/home/HomePageFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,11 @@ class HomePageFragment : ArticleCollectBaseFragment() {
bannerAdapter = ImageAdapter(requireContext(), viewModel.bannerList)
bannerAdapter2 = ImageAdapter(requireContext(), viewModel.bannerList2)
homeBanner.adapter = bannerAdapter
homeBanner.setBannerRound(20f)
homeBanner.setIndicator(CircleIndicator(context)).start()
homeBanner2.adapter = bannerAdapter2
homeBanner2.setIndicator(CircleIndicator(context)).start()
homeBanner2.setBannerRound(20f)
homeToTopRecyclerView.setRecyclerViewLayoutManager(true)
articleAdapter = ArticleAdapter(requireContext(), viewModel.articleList)
homeToTopRecyclerView.onRefreshListener({
Expand Down
8 changes: 6 additions & 2 deletions app/src/main/res/layout/fragment_home_page.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,21 @@
<com.youth.banner.Banner
android:id="@+id/homeBanner"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_180" />
android:layout_height="@dimen/dp_180"
android:layout_marginHorizontal="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10" />

<com.youth.banner.Banner
android:id="@+id/homeBanner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10"
android:layout_marginVertical="@dimen/dp_3"
android:visibility="gone" />

<com.zj.play.base.ToTopRecyclerView
android:id="@+id/homeToTopRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
android:layout_height="match_parent" />

</LinearLayout>
4 changes: 2 additions & 2 deletions config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ ext {
buildToolsVersion : "31.0.3",
minSdkVersion : 23,
targetSdkVersion : 31,
versionCode : 21,
versionName : "4.1.0",
versionCode : 22,
versionName : "4.2.0",
testInstrumentationRunner: "androidx.test.runner.AndroidJUnitRunner",
consumerProguardFiles : 'consumer-rules.pro',
]
Expand Down
2 changes: 2 additions & 0 deletions core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ dependencies {
api "com.github.bumptech.glide:glide:$glide_version"
annotationProcessor "com.github.bumptech.glide:compiler:$glide_version"

//Lottie动画
implementation "com.airbnb.android:lottie:5.0.3"

def activity_version = "1.4.0"
api "androidx.activity:activity-ktx:$activity_version"
Expand Down
3 changes: 1 addition & 2 deletions core/src/main/java/com/zj/core/view/base/BaseActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.FrameLayout
import android.widget.ProgressBar
import androidx.annotation.CallSuper
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.LiveData
Expand All @@ -30,7 +29,7 @@ abstract class BaseActivity : AppCompatActivity(), ILce, BaseActivityInit {
/**
* Activity中显示加载等待的控件。
*/
private var loading: ProgressBar? = null
private var loading: View? = null

/**
* Activity中由于服务器异常导致加载失败显示的布局。
Expand Down
10 changes: 4 additions & 6 deletions core/src/main/java/com/zj/core/view/base/BaseFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.ProgressBar
import android.widget.RelativeLayout
import androidx.annotation.CallSuper
import androidx.fragment.app.Fragment
import androidx.lifecycle.LiveData
Expand All @@ -25,23 +23,23 @@ abstract class BaseFragment : Fragment(), ILce, BaseFragmentInit {
/**
* Fragment中由于服务器异常导致加载失败显示的布局。
*/
private var loadErrorView: RelativeLayout? = null
private var loadErrorView: View? = null

/**
* Fragment中由于网络异常导致加载失败显示的布局。
*/
private var badNetworkView: RelativeLayout? = null
private var badNetworkView: View? = null

/**
* Fragment中当界面上没有任何内容时展示的布局。
*/
private var noContentView: RelativeLayout? = null
private var noContentView: View? = null


/**
* Fragment中显示加载等待的控件。
*/
private var loading: ProgressBar? = null
private var loading: View? = null

private var defaultLce: ILce? = null

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.zj.core.view.base.lce

import android.view.View
import android.widget.ProgressBar
import android.widget.TextView
import com.zj.core.R

Expand All @@ -11,7 +10,7 @@ import com.zj.core.R
* @author zhujiang
*/
class DefaultLceImpl constructor(
private val loading: ProgressBar?,
private val loading: View?,
private val loadErrorView: View?,
private val badNetworkView: View?,
private val noContentView: View?
Expand Down
47 changes: 22 additions & 25 deletions core/src/main/res/layout/bad_network_view.xml
Original file line number Diff line number Diff line change
@@ -1,34 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/badNetworkRootView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/wall"
android:focusable="true"
android:foreground="?android:selectableItemBackground">
android:foreground="?android:selectableItemBackground"
android:gravity="center"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">

<ImageView
android:layout_width="@dimen/dp_200"
android:layout_height="@dimen/dp_100"
android:layout_gravity="center_horizontal"
android:src="@drawable/bad_network_image" />
<com.airbnb.lottie.LottieAnimationView
android:layout_width="@dimen/dp_200"
android:layout_height="@dimen/dp_200"
android:layout_gravity="center"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/play_error" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_20"
android:text="@string/bad_network_view_tip"
android:textColor="@color/secondary_text"
android:textSize="@dimen/sp_13" />

</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_20"
android:text="@string/bad_network_view_tip"
android:textColor="@color/secondary_text"
android:textSize="@dimen/sp_13" />

</RelativeLayout>
</LinearLayout>
49 changes: 23 additions & 26 deletions core/src/main/res/layout/load_error_view.xml
Original file line number Diff line number Diff line change
@@ -1,33 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/wall">
android:background="@color/wall"
android:gravity="center"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">

<ImageView
android:layout_width="@dimen/dp_200"
android:layout_height="@dimen/dp_100"
android:layout_gravity="center_horizontal"
android:src="@drawable/bad_loading" />
<com.airbnb.lottie.LottieAnimationView
android:layout_width="@dimen/dp_200"
android:layout_height="@dimen/dp_200"
android:layout_gravity="center"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/play_error" />

<TextView
android:id="@+id/loadErrorText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_20"
android:textColor="@color/secondary_text"
android:textSize="@dimen/sp_13"
tools:text="@string/failed_load_data" />

</LinearLayout>
<TextView
android:id="@+id/loadErrorText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_20"
android:textColor="@color/secondary_text"
android:textSize="@dimen/sp_13"
tools:text="@string/failed_load_data" />

</RelativeLayout>
</LinearLayout>
11 changes: 6 additions & 5 deletions core/src/main/res/layout/loading.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
<com.airbnb.lottie.LottieAnimationView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/loading"
android:layout_width="@dimen/dp_200"
android:layout_height="@dimen/dp_110"
android:layout_height="@dimen/dp_200"
android:layout_gravity="center"
android:indeterminate="true"
android:indeterminateDrawable="@drawable/loading_animation"
android:indeterminateTintMode="src_atop" />
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/play_load" />
50 changes: 24 additions & 26 deletions core/src/main/res/layout/no_content_view.xml
Original file line number Diff line number Diff line change
@@ -1,33 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/wall">
android:layout_gravity="center"
android:background="@color/wall"
android:gravity="center"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">

<ImageView
android:layout_width="@dimen/dp_200"
android:layout_height="@dimen/dp_100"
android:layout_gravity="center_horizontal"
android:src="@drawable/no_content_image" />
<com.airbnb.lottie.LottieAnimationView
android:layout_width="@dimen/dp_200"
android:layout_height="@dimen/dp_200"
android:layout_gravity="center"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/play_no_data" />

<TextView
android:id="@+id/noContentText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_20"
android:textColor="@color/secondary_text"
android:textSize="@dimen/sp_13"
tools:text="没有更多内容了" />

</LinearLayout>
<TextView
android:id="@+id/noContentText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_20"
android:textColor="@color/secondary_text"
android:textSize="@dimen/sp_13"
tools:text="没有更多内容了" />

</RelativeLayout>
</LinearLayout>
1 change: 1 addition & 0 deletions core/src/main/res/raw/play_error.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions core/src/main/res/raw/play_load.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions core/src/main/res/raw/play_no_data.json

Large diffs are not rendered by default.

0 comments on commit 4be61af

Please sign in to comment.