Commit d34ac4e8 authored by wanglei's avatar wanglei

...提交部分ui...

parent 473e0762
package com.base.superpdfreader.activity package com.base.superpdfreader.activity
import android.animation.Animator
import android.animation.AnimatorListenerAdapter
import android.animation.ValueAnimator
import android.annotation.SuppressLint
import android.view.View
import androidx.core.animation.addListener
import androidx.lifecycle.lifecycleScope
import com.base.superpdfreader.databinding.ActivityPdfBrowserBinding import com.base.superpdfreader.databinding.ActivityPdfBrowserBinding
import com.base.superpdfreader.helps.BaseActivity import com.base.superpdfreader.helps.BaseActivity
import com.base.superpdfreader.helps.LogEx
import com.github.barteksc.pdfviewer.scroll.DefaultScrollHandle import com.github.barteksc.pdfviewer.scroll.DefaultScrollHandle
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import java.io.File import java.io.File
class PdfBrowserActivity : BaseActivity<ActivityPdfBrowserBinding>() { class PdfBrowserActivity : BaseActivity<ActivityPdfBrowserBinding>() {
var pageNumber = 0 var pageNumber = 0
private val TAG = "PdfBrowserActivity"
override val binding: ActivityPdfBrowserBinding by lazy { override val binding: ActivityPdfBrowserBinding by lazy {
ActivityPdfBrowserBinding.inflate(layoutInflater) ActivityPdfBrowserBinding.inflate(layoutInflater)
} }
...@@ -30,4 +45,72 @@ class PdfBrowserActivity : BaseActivity<ActivityPdfBrowserBinding>() { ...@@ -30,4 +45,72 @@ class PdfBrowserActivity : BaseActivity<ActivityPdfBrowserBinding>() {
} }
} }
override fun initListener() {
binding.pdfview.setOnClickListener {
toggleTools()
}
}
var toolsShow = false
var fadeAnimator: ValueAnimator? = null
var currentAlpha = 0f
var autoDismissJob: Job? = null
private fun toggleTools() {
toolsShow = !toolsShow
toolsFadeShow()
}
@SuppressLint("Recycle")
private fun toolsFadeShow() {
fadeAnimator?.cancel()
fadeAnimator = if (toolsShow) {
binding.llTools.visibility = View.VISIBLE
ValueAnimator.ofFloat(currentAlpha, 1f)
} else {
autoDismissJob?.cancel()
ValueAnimator.ofFloat(currentAlpha, 0f)
}
LogEx.logDebug(TAG, "toolsShow=$toolsShow currentAlpha=$currentAlpha")
fadeAnimator?.setDuration(500) // 动画持续时间500毫秒
fadeAnimator?.addUpdateListener { animation -> // 取动画的当前值并更新视图的透明度
currentAlpha = animation.getAnimatedValue() as Float
binding.llTools.setAlpha(currentAlpha)
LogEx.logDebug(TAG, "addUpdateListener currentAlpha=$currentAlpha")
if (toolsShow && currentAlpha == 1f) {
autoDismiss()
}
}
fadeAnimator?.addListener {
object : AnimatorListenerAdapter() {
override fun onAnimationStart(animation: Animator) {
super.onAnimationStart(animation)
LogEx.logDebug(TAG, "onAnimationStart toolsShow=$toolsShow")
}
override fun onAnimationEnd(animation: Animator) {
super.onAnimationEnd(animation)
if (!toolsShow) {
binding.llTools.visibility = View.GONE
}
LogEx.logDebug(TAG, "onAnimationEnd toolsShow=$toolsShow")
}
override fun onAnimationCancel(animation: Animator) {
}
}
}
fadeAnimator?.start()
}
private fun autoDismiss() {
lifecycleScope.launch(Dispatchers.Main) {
delay(3000)
toolsShow = false
toolsFadeShow()
}
}
} }
\ No newline at end of file
package com.base.superpdfreader.helps
import android.util.Log
import com.base.superpdfreader.BuildConfig
object LogEx {
val isOpen = true
val filterTAG = arrayOf(
"",
)
fun logDebug(tag: String, content: String, isMust: Boolean = false) {
if (isMust) {
Log.e(tag, content)
} else {
if (!isOpen) return
if (filterTAG.contains(tag)) return
if (BuildConfig.DEBUG) {
Log.e(tag, content)
}
}
}
}
\ No newline at end of file
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/white" android:background="@color/white"
android:visibility="gone"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<LinearLayout <LinearLayout
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment