diff --git a/app/src/main/assets/svga/refresh_header.svga b/app/src/main/assets/svga/refresh_header.svga new file mode 100644 index 000000000..04d9f796d Binary files /dev/null and b/app/src/main/assets/svga/refresh_header.svga differ diff --git a/app/src/main/java/com/nnbc123/app/home/refresh/HomeRefreshHeader.kt b/app/src/main/java/com/nnbc123/app/home/refresh/HomeRefreshHeader.kt new file mode 100644 index 000000000..8220425e0 --- /dev/null +++ b/app/src/main/java/com/nnbc123/app/home/refresh/HomeRefreshHeader.kt @@ -0,0 +1,102 @@ +package com.nnbc123.app.home.refresh + +import android.content.Context +import android.util.AttributeSet +import android.view.Gravity +import android.view.View +import android.widget.FrameLayout +import com.chuhai.utils.UiUtils +import com.nnbc123.app.ui.utils.loadFromAssets +import com.opensource.svgaplayer.SVGADrawable +import com.opensource.svgaplayer.SVGAImageView +import com.scwang.smartrefresh.layout.api.RefreshHeader +import com.scwang.smartrefresh.layout.api.RefreshKernel +import com.scwang.smartrefresh.layout.api.RefreshLayout +import com.scwang.smartrefresh.layout.constant.RefreshState +import com.scwang.smartrefresh.layout.constant.SpinnerStyle + +/** + * Created by Max on 2023/12/26 19:35 + * Desc: + **/ +class HomeRefreshHeader : FrameLayout, RefreshHeader { + + private var svgaView: SVGAImageView? = null + + constructor(context: Context) : super(context) + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) + + init { + svgaView = SVGAImageView(context) + svgaView?.loadFromAssets("svga/refresh_header.svga", false) + val size = UiUtils.dip2px(48f) + val layoutParams = LayoutParams(size, size) + layoutParams.gravity = Gravity.CENTER + addView(svgaView, layoutParams) + } + + override fun onStateChanged( + refreshLayout: RefreshLayout?, + oldState: RefreshState?, + newState: RefreshState? + ) { + } + + override fun getView(): View { + return this + } + + override fun getSpinnerStyle(): SpinnerStyle { + return SpinnerStyle.Translate + } + + override fun setPrimaryColors(vararg colors: Int) { + } + + override fun onInitialized(kernel: RefreshKernel?, height: Int, extendHeight: Int) { + } + + override fun onHorizontalDrag(percentX: Float, offsetX: Int, offsetMax: Int) { + } + + override fun onStartAnimator(layout: RefreshLayout?, height: Int, extendHeight: Int) { + svgaView?.startAnimation() + } + + override fun onFinish(layout: RefreshLayout?, success: Boolean): Int { + svgaView?.stopAnimation() + return 500 + } + + override fun isSupportHorizontalDrag(): Boolean { + return false + } + + override fun onPullingDown( + percent: Float, + offset: Int, + headerHeight: Int, + extendHeight: Int + ) { + } + + override fun onReleasing( + percent: Float, + offset: Int, + headerHeight: Int, + extendHeight: Int + ) { + } +} \ No newline at end of file diff --git a/app/src/main/java/com/nnbc123/app/ui/user/UserInfoActivity.java b/app/src/main/java/com/nnbc123/app/ui/user/UserInfoActivity.java index 3634334a8..4d5e93b2b 100644 --- a/app/src/main/java/com/nnbc123/app/ui/user/UserInfoActivity.java +++ b/app/src/main/java/com/nnbc123/app/ui/user/UserInfoActivity.java @@ -215,7 +215,7 @@ public class UserInfoActivity extends BaseBindingActivity - + android:layout_height="94dp" /> + + + + +