diff --git a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt index 3304af6ac..b96526874 100644 --- a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt @@ -2,6 +2,7 @@ package io.legado.app.ui.book.audio import android.annotation.SuppressLint import android.app.Activity +import android.graphics.Color import android.icu.text.SimpleDateFormat import android.os.Build import android.os.Bundle @@ -78,7 +79,7 @@ class AudioPlayActivity : } override fun onActivityCreated(savedInstanceState: Bundle?) { - binding.titleBar.transparent() + binding.titleBar.setBackgroundColor(Color.argb(60, 0, 0, 0)) AudioPlay.titleData.observe(this) { binding.titleBar.title = it } diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt index 2520123af..ef34a006b 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt @@ -2,6 +2,7 @@ package io.legado.app.ui.book.info import android.annotation.SuppressLint import android.content.Intent +import android.graphics.Color import android.os.Bundle import android.view.Menu import android.view.MenuItem @@ -101,7 +102,7 @@ class BookInfoActivity : @SuppressLint("PrivateResource") override fun onActivityCreated(savedInstanceState: Bundle?) { - binding.titleBar.transparent() + binding.titleBar.setBackgroundColor(Color.argb(60, 0, 0, 0)) binding.arcView.setBgColor(backgroundColor) binding.llInfo.setBackgroundColor(backgroundColor) binding.scrollView.setBackgroundColor(backgroundColor) diff --git a/app/src/main/java/io/legado/app/ui/widget/TitleBar.kt b/app/src/main/java/io/legado/app/ui/widget/TitleBar.kt index bcffe65f1..028b47090 100644 --- a/app/src/main/java/io/legado/app/ui/widget/TitleBar.kt +++ b/app/src/main/java/io/legado/app/ui/widget/TitleBar.kt @@ -2,9 +2,10 @@ package io.legado.app.ui.widget import android.content.Context import android.content.res.ColorStateList -import android.graphics.Color import android.graphics.PorterDuff import android.graphics.PorterDuffColorFilter +import android.graphics.drawable.ColorDrawable +import android.graphics.drawable.Drawable import android.util.AttributeSet import android.view.Menu import android.view.View @@ -12,6 +13,7 @@ import android.widget.ImageView import androidx.annotation.ColorInt import androidx.annotation.StyleRes import androidx.appcompat.widget.Toolbar +import androidx.core.graphics.alpha import androidx.core.view.children import com.google.android.material.appbar.AppBarLayout import io.legado.app.R @@ -21,7 +23,7 @@ import io.legado.app.utils.activity import io.legado.app.utils.navigationBarHeight import io.legado.app.utils.statusBarHeight -@Suppress("unused") +@Suppress("unused", "MemberVisibilityCanBePrivate") class TitleBar @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null @@ -201,19 +203,30 @@ class TitleBar @JvmOverloads constructor( setSubTitleTextColor(color) } - fun setColorFilter(@ColorInt color: Int){ - val colorFilter = PorterDuffColorFilter(color,PorterDuff.Mode.SRC_ATOP) + fun setColorFilter(@ColorInt color: Int) { + val colorFilter = PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP) toolbar.children.firstOrNull { it is ImageView }?.background?.colorFilter = colorFilter toolbar.navigationIcon?.colorFilter = colorFilter toolbar.overflowIcon?.colorFilter = colorFilter - toolbar.menu.children.forEach{ + toolbar.menu.children.forEach { it.icon?.colorFilter = colorFilter } } - fun transparent() { - elevation = 0f - setBackgroundColor(Color.TRANSPARENT) + override fun setBackgroundColor(color: Int) { + if (color.alpha < 255) { + elevation = 0.1f + } + super.setBackgroundColor(color) + } + + override fun setBackground(background: Drawable?) { + if (background is ColorDrawable) { + if (background.alpha < 255) { + elevation = 0.1f + } + } + super.setBackground(background) } fun onMultiWindowModeChanged(isInMultiWindowMode: Boolean, fullScreen: Boolean) {