重新设计界面设置布局

This commit is contained in:
HapeLee
2025-09-05 03:38:27 +08:00
parent ee703523de
commit cb60443323
14 changed files with 103 additions and 511 deletions
@@ -507,7 +507,7 @@ object ReadBookConfig {
private var pageAnim: Int = 0,//翻页动画 private var pageAnim: Int = 0,//翻页动画
private var pageAnimEInk: Int = 4, private var pageAnimEInk: Int = 4,
var textFont: String = "",//字体 var textFont: String = "",//字体
var textBold: Int = 0,//是否粗体字 0:正常, 1:粗体, 2:细体 var textBold: Int = 500,//是否粗体字 0:正常, 1:粗体, 2:细体
var textSize: Int = 20,//文字大小 var textSize: Int = 20,//文字大小
var letterSpacing: Float = 0.1f,//字间距 var letterSpacing: Float = 0.1f,//字间距
var lineSpacingExtra: Int = 12,//行间距 var lineSpacingExtra: Int = 12,//行间距
@@ -34,7 +34,6 @@ import io.legato.kazusa.ui.book.read.config.BgTextConfigDialog
import io.legato.kazusa.ui.book.read.config.ClickActionConfigDialog import io.legato.kazusa.ui.book.read.config.ClickActionConfigDialog
import io.legato.kazusa.ui.book.read.config.PaddingConfigDialog import io.legato.kazusa.ui.book.read.config.PaddingConfigDialog
import io.legato.kazusa.ui.book.read.config.PageKeyDialog import io.legato.kazusa.ui.book.read.config.PageKeyDialog
import io.legato.kazusa.ui.book.read.config.ReadSpacingDialog
import io.legato.kazusa.ui.file.HandleFileContract import io.legato.kazusa.ui.file.HandleFileContract
import io.legato.kazusa.utils.ColorUtils import io.legato.kazusa.utils.ColorUtils
import io.legato.kazusa.utils.FileDoc import io.legato.kazusa.utils.FileDoc
@@ -125,10 +124,6 @@ abstract class BaseReadBookActivity :
} }
fun showSpacingDialog() {
showDialogFragment<ReadSpacingDialog>()
}
fun showPaddingConfig() { fun showPaddingConfig() {
showDialogFragment<PaddingConfigDialog>() showDialogFragment<PaddingConfigDialog>()
} }
@@ -1,47 +0,0 @@
package io.legato.kazusa.ui.book.read.config
import android.content.Context
import android.text.SpannableString
import android.util.AttributeSet
import com.google.android.material.button.MaterialButton
import io.legato.kazusa.R
import io.legato.kazusa.help.config.AppConfig
import io.legato.kazusa.lib.dialogs.alert
//import io.legado.app.lib.theme.accentColor
import io.legato.kazusa.ui.widget.text.StrokeTextView
class ChineseConverter(context: Context, attrs: AttributeSet?) : MaterialButton(context, attrs) {
private val spannableString = SpannableString("简/繁")
private var onChanged: (() -> Unit)? = null
init {
text = spannableString
if (!isInEditMode) {
upUi(AppConfig.chineseConverterType)
}
setOnClickListener {
selectType()
}
}
private fun upUi(type: Int) {
val showOptions = context.resources.getStringArray(R.array.chinese_mode)
text = showOptions.getOrNull(type) ?: ""
}
private fun selectType() {
context.alert(titleResource = R.string.chinese_converter) {
items(context.resources.getStringArray(R.array.chinese_mode).toList()) { _, i ->
AppConfig.chineseConverterType = i
upUi(i)
onChanged?.invoke()
}
}
}
fun onChanged(unit: () -> Unit) {
onChanged = unit
}
}
@@ -1,63 +0,0 @@
package io.legato.kazusa.ui.book.read.config
import android.content.DialogInterface
import android.os.Bundle
import android.view.View
import io.legato.kazusa.R
import io.legato.kazusa.base.BaseBottomSheetDialogFragment
import io.legato.kazusa.constant.EventBus
import io.legato.kazusa.databinding.DialogReadBookSpacingBinding
import io.legato.kazusa.help.config.ReadBookConfig
import io.legato.kazusa.ui.book.read.ReadBookActivity
import io.legato.kazusa.utils.postEvent
import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
class ReadSpacingDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_book_spacing) {
private val binding by viewBinding(DialogReadBookSpacingBinding::bind)
private val callBack get() = activity as? ReadBookActivity
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
(activity as ReadBookActivity).bottomDialog++
initView()
upView()
initViewEvent()
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
ReadBookConfig.save()
(activity as ReadBookActivity).bottomDialog--
}
private fun initView() = binding.run {
dsbTextLetterSpacing.valueFormat = {
((it - 50) / 100f).toString()
}
dsbLineSize.valueFormat = { ((it - 10) / 10f).toString() }
dsbParagraphSpacing.valueFormat = { (it / 10f).toString() }
}
private fun initViewEvent() = binding.run {
dsbTextLetterSpacing.onChanged = {
ReadBookConfig.letterSpacing = (it - 50) / 100f
postEvent(EventBus.UP_CONFIG, arrayListOf(8, 5))
}
dsbLineSize.onChanged = {
ReadBookConfig.lineSpacingExtra = it
postEvent(EventBus.UP_CONFIG, arrayListOf(8, 5))
}
dsbParagraphSpacing.onChanged = {
ReadBookConfig.paragraphSpacing = it
postEvent(EventBus.UP_CONFIG, arrayListOf(8, 5))
}
}
private fun upView() = binding.run {
ReadBookConfig.let {
dsbTextLetterSpacing.progress = (it.letterSpacing * 100).toInt() + 50
dsbLineSize.progress = it.lineSpacingExtra
dsbParagraphSpacing.progress = it.paragraphSpacing
}
}
}
@@ -18,10 +18,8 @@ import io.legato.kazusa.help.config.AppConfig
import io.legato.kazusa.help.config.ReadBookConfig import io.legato.kazusa.help.config.ReadBookConfig
import io.legato.kazusa.help.config.ThemeConfig import io.legato.kazusa.help.config.ThemeConfig
import io.legato.kazusa.lib.dialogs.alert import io.legato.kazusa.lib.dialogs.alert
import io.legato.kazusa.lib.dialogs.selector
import io.legato.kazusa.model.ReadBook import io.legato.kazusa.model.ReadBook
import io.legato.kazusa.ui.book.read.ReadBookActivity import io.legato.kazusa.ui.book.read.ReadBookActivity
import io.legato.kazusa.ui.font.FontSelectDialog
import io.legato.kazusa.utils.ChineseUtils import io.legato.kazusa.utils.ChineseUtils
import io.legato.kazusa.utils.dpToPx import io.legato.kazusa.utils.dpToPx
import io.legato.kazusa.utils.postEvent import io.legato.kazusa.utils.postEvent
@@ -96,21 +94,9 @@ class ReadStyleDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_book_
} }
} }
textFontWeightConverter.onChanged {
postEvent(EventBus.UP_CONFIG, arrayListOf(8, 9, 6))
}
tvTextFont.setOnClickListener { tvTextFont.setOnClickListener {
showDialogFragment<FontSelectDialog>() showDialogFragment<FontSelectDialog>()
} }
tvTextIndent.setOnClickListener {
context?.selector(
title = getString(R.string.text_indent),
items = resources.getStringArray(R.array.indent).toList()
) { _, index ->
ReadBookConfig.paragraphIndent = " ".repeat(index)
postEvent(EventBus.UP_CONFIG, arrayListOf(8, 5))
}
}
tvPadding.setOnClickListener { tvPadding.setOnClickListener {
dismissAllowingStateLoss() dismissAllowingStateLoss()
callBack?.showPaddingConfig() callBack?.showPaddingConfig()
@@ -156,10 +142,6 @@ class ReadStyleDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_book_
ReadBookConfig.textSize = it + 5 ReadBookConfig.textSize = it + 5
postEvent(EventBus.UP_CONFIG, arrayListOf(8, 5)) postEvent(EventBus.UP_CONFIG, arrayListOf(8, 5))
} }
btnSpacing.setOnClickListener {
callBack?.showSpacingDialog()
}
} }
private fun changeBgTextConfig(index: Int) { private fun changeBgTextConfig(index: Int) {
@@ -184,7 +166,6 @@ class ReadStyleDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_book_
} }
private fun upView() = binding.run { private fun upView() = binding.run {
textFontWeightConverter.upUi(ReadBookConfig.textBold)
ReadBook.pageAnim().let { ReadBook.pageAnim().let {
if (it >= 0 && it < rgPageAnim.childCount) { if (it >= 0 && it < rgPageAnim.childCount) {
rgPageAnim.check(rgPageAnim[it].id) rgPageAnim.check(rgPageAnim[it].id)
@@ -1,49 +0,0 @@
package io.legato.kazusa.ui.book.read.config
import android.content.Context
import android.text.SpannableString
import android.util.AttributeSet
import com.google.android.material.button.MaterialButton
import io.legato.kazusa.R
import io.legato.kazusa.help.config.ReadBookConfig
import io.legato.kazusa.lib.dialogs.alert
//import io.legado.app.lib.theme.accentColor
import io.legato.kazusa.ui.widget.text.StrokeTextView
class TextFontWeightConverter(context: Context, attrs: AttributeSet?) :
MaterialButton(context, attrs) {
private val spannableString = SpannableString(context.getString(R.string.font_weight_text))
private var onChanged: (() -> Unit)? = null
init {
text = spannableString
if (!isInEditMode) {
upUi(ReadBookConfig.textBold)
}
setOnClickListener {
selectType()
}
}
@Suppress("MemberVisibilityCanBePrivate")
fun upUi(type: Int) {
val weightOptions = context.resources.getStringArray(R.array.text_font_weight)
text = weightOptions.getOrNull(type) ?: ""
}
private fun selectType() {
context.alert(titleResource = R.string.text_font_weight_converter) {
items(context.resources.getStringArray(R.array.text_font_weight).toList()) { _, i ->
ReadBookConfig.textBold = i
upUi(i)
onChanged?.invoke()
}
}
}
fun onChanged(unit: () -> Unit) {
onChanged = unit
}
}
@@ -1,72 +0,0 @@
package io.legato.kazusa.ui.font
import android.content.Context
import android.graphics.Typeface
import android.os.Build
import android.view.ViewGroup
import io.legato.kazusa.base.adapter.ItemViewHolder
import io.legato.kazusa.base.adapter.RecyclerAdapter
import io.legato.kazusa.constant.AppLog
import io.legato.kazusa.databinding.ItemFontBinding
import io.legato.kazusa.utils.*
import java.io.File
import java.net.URLDecoder
class FontAdapter(context: Context, curFilePath: String, val callBack: CallBack) :
RecyclerAdapter<FileDoc, ItemFontBinding>(context) {
private val curName = kotlin.runCatching {
URLDecoder.decode(curFilePath, "utf-8")
}.getOrNull()?.substringAfterLast(File.separator)
override fun getViewBinding(parent: ViewGroup): ItemFontBinding {
return ItemFontBinding.inflate(inflater, parent, false)
}
override fun convert(
holder: ItemViewHolder,
binding: ItemFontBinding,
item: FileDoc,
payloads: MutableList<Any>
) {
binding.run {
kotlin.runCatching {
val typeface: Typeface? = if (item.isContentScheme) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
context.contentResolver
.openFileDescriptor(item.uri, "r")?.use {
Typeface.Builder(it.fileDescriptor).build()
}
} else {
Typeface.createFromFile(RealPathUtil.getPath(context, item.uri))
}
} else {
Typeface.createFromFile(item.uri.path!!)
}
tvFont.typeface = typeface
}.onFailure {
it.printOnDebug()
AppLog.put("读取字体 ${item.name} 出错\n${it.localizedMessage}", it, true)
}
tvFont.text = item.name
root.setOnClickListener { callBack.onFontSelect(item) }
if (item.name == curName) {
ivChecked.visible()
} else {
ivChecked.invisible()
}
}
}
override fun registerListener(holder: ItemViewHolder, binding: ItemFontBinding) {
holder.itemView.setOnClickListener {
getItem(holder.layoutPosition)?.let {
callBack.onFontSelect(it)
}
}
}
interface CallBack {
fun onFontSelect(docItem: FileDoc)
}
}
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M120,200L120,120L840,120L840,200L120,200ZM760,280Q793,280 816.5,303.5Q840,327 840,360L840,760Q840,793 816.5,816.5Q793,840 760,840L200,840Q167,840 143.5,816.5Q120,793 120,760L120,360Q120,327 143.5,303.5Q167,280 200,280L760,280ZM760,360L200,360Q200,360 200,360Q200,360 200,360L200,760Q200,760 200,760Q200,760 200,760L760,760Q760,760 760,760Q760,760 760,760L760,360Q760,360 760,360Q760,360 760,360ZM200,360Q200,360 200,360Q200,360 200,360L200,760Q200,760 200,760Q200,760 200,760L200,760Q200,760 200,760Q200,760 200,760L200,360Q200,360 200,360Q200,360 200,360Z" />
</vector>
@@ -1,99 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/root_view"
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:gravity="center"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingBottom="16dp">
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/bottom_sheet_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="界面设置"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="8dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_text_letter_spacing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:isBottomBackground="true"
app:max="100"
app:title="@string/text_letter_spacing" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginBottom="8dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_line_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:isBottomBackground="true"
app:max="20"
app:title="@string/line_size" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_paragraph_spacing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:isBottomBackground="true"
app:max="20"
app:title="@string/paragraph_size" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
@@ -17,7 +17,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:gravity="center" android:gravity="center"
android:paddingBottom="16dp" android:paddingBottom="8dp"
android:paddingHorizontal="16dp"> android:paddingHorizontal="16dp">
<com.google.android.material.bottomsheet.BottomSheetDragHandleView <com.google.android.material.bottomsheet.BottomSheetDragHandleView
@@ -48,8 +48,10 @@
android:layout_height="36dp" android:layout_height="36dp"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:textColor="?attr/colorTertiary"
app:iconSize="16dp" app:iconSize="16dp"
app:icon="@drawable/ic_brightness" app:icon="@drawable/ic_brightness"
app:backgroundTint="?attr/colorTertiaryContainer"
app:iconGravity="textStart" app:iconGravity="textStart"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/bottom_sheet_title" app:layout_constraintStart_toEndOf="@id/bottom_sheet_title"
@@ -71,151 +73,86 @@
android:orientation="horizontal" android:orientation="horizontal"
android:layout_marginHorizontal="12dp" > android:layout_marginHorizontal="12dp" >
<io.legato.kazusa.ui.book.read.config.TextFontWeightConverter
android:id="@+id/text_font_weight_converter"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal"
android:layout_width="64dp"
android:layout_height="64dp"
android:text="@string/font_weight_text"
android:layout_weight="2"
app:icon="@drawable/font_bold"
app:iconGravity="textTop"
android:textSize="10sp"
tool:ignore="SmallSp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/tv_text_font" android:id="@+id/tv_text_font"
android:layout_width="64dp" style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:layout_height="64dp" android:layout_width="wrap_content"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal" android:layout_height="wrap_content"
android:layout_weight="2" android:layout_weight="3"
android:text="@string/text_font" android:text="字体与间距"
app:icon="@drawable/font_style" app:icon="@drawable/ic_cfg_txt"
app:iconGravity="textTop"
android:textSize="10sp"
tool:ignore="SmallSp" /> tool:ignore="SmallSp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_text_indent"
android:layout_width="64dp"
android:layout_height="64dp"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal"
android:layout_weight="2"
android:text="@string/text_indent"
app:icon="@drawable/ic_segment"
app:iconGravity="textTop"
android:textSize="10sp"
tool:ignore="SmallSp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/tv_padding" android:id="@+id/tv_padding"
android:layout_width="64dp" style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:layout_height="64dp" android:layout_width="wrap_content"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal"
android:layout_weight="2" android:layout_weight="2"
android:layout_height="wrap_content"
android:text="@string/padding" android:text="@string/padding"
app:icon="@drawable/ic_padding" app:icon="@drawable/ic_padding"
app:iconGravity="textTop"
android:textSize="10sp"
tool:ignore="SmallSp" /> tool:ignore="SmallSp" />
</com.google.android.material.button.MaterialButtonGroup>
<com.google.android.material.button.MaterialButtonGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginHorizontal="16dp">
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/tv_tip" android:id="@+id/tv_tip"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="2"
style="@style/Widget.Material3Expressive.Button.OutlinedButton" style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:text="@string/information" /> android:text="@string/information"
app:icon="@drawable/ic_header"
<View tool:ignore="SmallSp" />
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:text="@string/more_setting" />
</com.google.android.material.button.MaterialButtonGroup> </com.google.android.material.button.MaterialButtonGroup>
</LinearLayout> </LinearLayout>
<LinearLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical" android:layout_marginTop="4dp"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_marginTop="8dp" android:gravity="bottom"
android:layout_marginHorizontal="16dp"> android:layout_marginHorizontal="16dp">
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_text_size" android:id="@+id/dsb_text_size"
android:layout_width="wrap_content" android:layout_width="140dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginVertical="2dp" android:layout_marginBottom="2dp"
app:orientation="horizontal" app:layout_constraintBottom_toBottomOf="parent"
app:isBottomBackground="true"
app:max="45" app:max="45"
app:layout_constraintStart_toStartOf="parent"
app:orientation="vertical"
app:title="@string/text_size" /> app:title="@string/text_size" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnChineseConverter" android:id="@+id/btnChineseConverter"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Widget.Material3Expressive.Button.IconButton.Outlined" style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:minWidth="0dp"
android:minHeight="0dp"
app:iconPadding="0dp"
app:icon="@drawable/ic_cn_convert" app:icon="@drawable/ic_cn_convert"
app:iconGravity="textStart" app:iconGravity="textStart"
app:iconSize="16dp" /> app:iconSize="16dp"
app:layout_constraintBottom_toBottomOf="parent"
<View app:layout_constraintEnd_toStartOf="@id/tv_more"
android:layout_width="0dp" app:layout_constraintStart_toEndOf="@id/dsb_text_size" />
android:layout_height="0dp"
android:layout_weight="1" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btn_spacing" android:id="@+id/tv_more"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="间距设置" style="@style/Widget.Material3Expressive.Button.TonalButton"
app:icon="@drawable/ic_arrow_right" app:icon="@drawable/ic_arrow_right"
app:iconGravity="textEnd" /> android:text="@string/more_setting"
app:iconGravity="end"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout <LinearLayout
@@ -230,7 +167,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginBottom="4dp"
android:text="@string/page_anim" android:text="@string/page_anim"
android:textStyle="bold" android:textStyle="bold"
android:textSize="12sp" /> android:textSize="12sp" />
@@ -318,7 +254,7 @@
android:id="@+id/rv_style" android:id="@+id/rv_style"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="2dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:clipToPadding="false" android:clipToPadding="false"
android:orientation="horizontal" android:orientation="horizontal"
+33 -38
View File
@@ -59,20 +59,20 @@
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_header_padding_top" android:id="@+id/dsb_header_padding_top"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:layout_weight="1"
app:max="100" app:max="100"
app:title="@string/padding_top" /> app:title="@string/padding_top" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_header_padding_bottom" android:id="@+id/dsb_header_padding_bottom"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"
app:max="100" app:max="100"
app:title="@string/padding_bottom" /> app:title="@string/padding_bottom" />
@@ -85,20 +85,20 @@
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_header_padding_left" android:id="@+id/dsb_header_padding_left"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
app:max="100" app:max="100"
android:layout_weight="1"
app:title="@string/padding_left" /> app:title="@string/padding_left" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_header_padding_right" android:id="@+id/dsb_header_padding_right"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"
app:max="100" app:max="100"
app:title="@string/padding_right" /> app:title="@string/padding_right" />
@@ -122,20 +122,19 @@
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_padding_top" android:id="@+id/dsb_padding_top"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:layout_weight="1"
app:max="200" app:max="200"
app:title="@string/padding_top" /> app:title="@string/padding_top" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_padding_bottom" android:id="@+id/dsb_padding_bottom"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"
app:max="100" app:max="100"
app:title="@string/padding_bottom" /> app:title="@string/padding_bottom" />
@@ -148,20 +147,19 @@
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_padding_left" android:id="@+id/dsb_padding_left"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:layout_weight="1"
app:max="100" app:max="100"
app:title="@string/padding_left" /> app:title="@string/padding_left" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_padding_right" android:id="@+id/dsb_padding_right"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"
app:max="100" app:max="100"
app:title="@string/padding_right" /> app:title="@string/padding_right" />
@@ -202,20 +200,19 @@
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_footer_padding_top" android:id="@+id/dsb_footer_padding_top"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:layout_weight="1"
app:max="100" app:max="100"
app:title="@string/padding_top" /> app:title="@string/padding_top" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_footer_padding_bottom" android:id="@+id/dsb_footer_padding_bottom"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"
app:max="100" app:max="100"
app:title="@string/padding_bottom" /> app:title="@string/padding_bottom" />
@@ -228,20 +225,18 @@
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_footer_padding_left" android:id="@+id/dsb_footer_padding_left"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:layout_weight="1"
app:max="100" app:max="100"
app:title="@string/padding_left" /> app:title="@string/padding_left" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_footer_padding_right" android:id="@+id/dsb_footer_padding_right"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"
app:max="100" app:max="100"
app:title="@string/padding_right" /> app:title="@string/padding_right" />
@@ -87,7 +87,7 @@
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_title_top" android:id="@+id/dsb_title_top"
android:layout_width="wrap_content" android:layout_width="140dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:max="100" app:max="100"
app:title="@string/title_margin_top" /> app:title="@string/title_margin_top" />
@@ -99,7 +99,7 @@
<io.legato.kazusa.ui.widget.SimpleCounterView <io.legato.kazusa.ui.widget.SimpleCounterView
android:id="@+id/dsb_title_bottom" android:id="@+id/dsb_title_bottom"
android:layout_width="wrap_content" android:layout_width="140dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:max="100" app:max="100"
app:title="@string/title_margin_bottom" /> app:title="@string/title_margin_bottom" />
@@ -5,7 +5,7 @@
<LinearLayout <LinearLayout
android:id="@+id/layout_root" android:id="@+id/layout_root"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -24,7 +24,7 @@
tools:ignore="RtlSymmetry" /> tools:ignore="RtlSymmetry" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
@@ -42,7 +42,7 @@
tools:ignore="RtlSymmetry" /> tools:ignore="RtlSymmetry" />
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginVertical="2dp" android:layout_marginVertical="2dp"
app:cardBackgroundColor="?attr/colorSurfaceVariant" app:cardBackgroundColor="?attr/colorSurfaceVariant"
@@ -50,7 +50,7 @@
app:strokeWidth="0dp"> app:strokeWidth="0dp">
<LinearLayout <LinearLayout
android:layout_width="112dp" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -58,8 +58,10 @@
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/iv_seek_reduce" android:id="@+id/iv_seek_reduce"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal" style="@style/Widget.Material3Expressive.Button.IconButton.Tonal"
android:layout_width="40dp" android:layout_width="0dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_weight="3"
android:minWidth="64dp"
android:contentDescription="@string/reduce" android:contentDescription="@string/reduce"
android:elevation="4dp" android:elevation="4dp"
app:backgroundTint="?attr/colorSurfaceContainer" app:backgroundTint="?attr/colorSurfaceContainer"
@@ -71,7 +73,7 @@
android:id="@+id/tvSeekValue" android:id="@+id/tvSeekValue"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="2"
android:gravity="center" android:gravity="center"
android:text="@string/text" android:text="@string/text"
android:textColor="?attr/colorSecondary" android:textColor="?attr/colorSecondary"
@@ -81,8 +83,10 @@
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/iv_seek_plus" android:id="@+id/iv_seek_plus"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal" style="@style/Widget.Material3Expressive.Button.IconButton.Tonal"
android:layout_width="40dp" android:layout_width="0dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_weight="3"
android:minWidth="64dp"
android:contentDescription="@string/plus" android:contentDescription="@string/plus"
android:elevation="4dp" android:elevation="4dp"
app:backgroundTint="?attr/colorSurfaceContainer" app:backgroundTint="?attr/colorSurfaceContainer"
+5 -5
View File
@@ -524,10 +524,10 @@
<string name="use_regex">使用正则表达式</string> <string name="use_regex">使用正则表达式</string>
<string name="text_indent">缩进</string> <string name="text_indent">缩进</string>
<string name="indent_0">无缩进</string> <string name="indent_0">无缩进</string>
<string name="indent_1">一字符缩进</string> <string name="indent_1">一字符</string>
<string name="indent_2">二字符缩进</string> <string name="indent_2">二字符</string>
<string name="indent_3">三字符缩进</string> <string name="indent_3">三字符</string>
<string name="indent_4">四字符缩进</string> <string name="indent_4">四字符</string>
<string name="select_folder">选择文件夹</string> <string name="select_folder">选择文件夹</string>
<string name="select_file">选择文件</string> <string name="select_file">选择文件</string>
<string name="no_find">没有发现,可以在书源里添加。</string> <string name="no_find">没有发现,可以在书源里添加。</string>
@@ -710,7 +710,7 @@
<string name="middle"></string> <string name="middle"></string>
<string name="information">信息</string> <string name="information">信息</string>
<string name="switchLayout">切换布局</string> <string name="switchLayout">切换布局</string>
<string name="text_font_weight_converter">文章字重切换</string> <string name="text_font_weight_converter">字重</string>
<string name="full_screen_gestures_support">全面屏手势优化</string> <string name="full_screen_gestures_support">全面屏手势优化</string>
<string name="disable_return_key">禁用返回键</string> <string name="disable_return_key">禁用返回键</string>