增加[紧凑网格]、[封面网格]书架布局。

This commit is contained in:
HapeLee committed 2025-09-02 03:22:00 +08:00
1 parent 701f2826b3
commit 02bc1845a0
13 files changed
+968 -86

No files matched your search

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="90"
android:endColor="#00000000"
android:startColor="#CC000000"
android:type="linear" />
</shape>
@@ -80,55 +80,59 @@
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group_style"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:checkableBehavior="single"
android:paddingBottom="8dp"
app:selectionRequired="true"
app:singleSelection="true" />
<LinearLayout
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="8dp">
android:layout_gravity="center_vertical"
android:text="@string/sortview"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:checkableBehavior="single"
app:selectionRequired="true"
app:singleSelection="true">
<com.google.android.material.chip.Chip
android:id="@+id/chip_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/sortview"
android:textSize="14sp"
android:textStyle="bold" />
android:checkable="true"
android:text="@string/list" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group_layout"
<com.google.android.material.chip.Chip
android:id="@+id/chip_grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:selectionRequired="true"
app:singleSelection="true">
android:checkable="true"
android:text="@string/grid" />
<com.google.android.material.chip.Chip
android:id="@+id/chip_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="@string/list" />
<com.google.android.material.chip.Chip
android:id="@+id/chip_grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="@string/grid" />
</com.google.android.material.chip.ChipGroup>
</LinearLayout>
<com.google.android.material.chip.Chip
android:id="@+id/chip_grid_compact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="紧凑网格" />
<com.google.android.material.chip.Chip
android:id="@+id/chip_grid_cover"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="封面网格" />
</com.google.android.material.chip.ChipGroup>
<TextView
android:id="@+id/slider_text"
@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView 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="wrap_content"
android:background="?attr/selectableItemBackground"
app:strokeWidth="0dp">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="6dp"
android:paddingTop="2dp"
android:paddingBottom="12dp">
<com.google.android.material.card.MaterialCardView
android:id="@+id/cv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
app:cardBackgroundColor="@android:color/transparent"
app:cardCornerRadius="6dp"
app:layout_constraintTop_toTopOf="parent"
app:strokeWidth="0dp">
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/image_cover_default"
android:transitionName="img_cover"
tools:ignore="ImageContrastCheck" />
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/rl_loading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginHorizontal="12dp"
android:layout_marginVertical="4dp"
android:indeterminate="true"
android:visibility="invisible" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/cd_unread"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|end"
android:layout_margin="4dp"
android:visibility="visible"
app:cardBackgroundColor="?attr/colorSecondaryVariant"
app:cardCornerRadius="4dp"
app:strokeWidth="0dp">
<TextView
android:id="@+id/tv_unread"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:padding="4dp"
android:textColor="?attr/colorSurface"
android:textSize="10sp"
android:textStyle="bold"
tools:ignore="SmallSp"
tools:text="5" />
</com.google.android.material.card.MaterialCardView>
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_gravity="bottom"
android:background="@drawable/bg_gradient_black"
android:ellipsize="end"
android:gravity="bottom|start"
android:lines="2"
android:paddingHorizontal="6dp"
android:paddingVertical="6dp"
android:text="@string/book_name"
android:textColor="@android:color/white"
android:textSize="12sp"
android:textStyle="bold"
tools:ignore="RtlHardcoded" />
</com.google.android.material.card.MaterialCardView>
</FrameLayout>
</com.google.android.material.card.MaterialCardView>
@@ -0,0 +1,159 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView 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="wrap_content"
android:background="?attr/selectableItemBackground"
app:strokeWidth="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="2dp"
android:paddingBottom="12dp">
<com.google.android.material.card.MaterialCardView
android:id="@+id/cv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
app:cardCornerRadius="8dp"
app:layout_constraintTop_toTopOf="parent"
app:strokeWidth="0dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="?attr/colorSurfaceVariant"
android:transitionName="img_cover"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ImageContrastCheck" />
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/rl_loading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginHorizontal="12dp"
android:layout_marginVertical="4dp"
android:indeterminate="true"
android:visibility="invisible"
app:layout_constraintEnd_toEndOf="@id/iv_cover"
app:layout_constraintStart_toStartOf="@id/iv_cover"
app:layout_constraintTop_toTopOf="@id/iv_cover" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/cd_unread"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:visibility="visible"
app:cardBackgroundColor="?attr/colorSecondaryVariant"
app:cardCornerRadius="4dp"
app:layout_constraintEnd_toEndOf="@id/iv_cover"
app:layout_constraintTop_toTopOf="@id/iv_cover"
app:strokeWidth="0dp">
<TextView
android:id="@+id/tv_unread"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:padding="4dp"
android:textColor="?attr/colorSurface"
android:textSize="10sp"
android:textStyle="bold"
tools:ignore="SmallSp"
tools:text="5" />
</com.google.android.material.card.MaterialCardView>
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="2dp"
android:layout_marginBottom="2dp"
app:layout_constraintBottom_toTopOf="@id/iv_cover3"
app:layout_constraintEnd_toStartOf="@id/iv_cover2"
app:layout_constraintStart_toStartOf="@id/iv_cover"
app:layout_constraintTop_toTopOf="@id/iv_cover" />
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginStart="2dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="4dp"
android:layout_marginBottom="2dp"
app:layout_constraintBottom_toTopOf="@id/iv_cover4"
app:layout_constraintEnd_toEndOf="@id/iv_cover"
app:layout_constraintStart_toEndOf="@id/iv_cover1"
app:layout_constraintTop_toTopOf="@id/iv_cover" />
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginTop="2dp"
android:layout_marginEnd="2dp"
android:layout_marginBottom="4dp"
app:layout_constraintBottom_toBottomOf="@id/iv_cover"
app:layout_constraintEnd_toStartOf="@id/iv_cover4"
app:layout_constraintStart_toStartOf="@id/iv_cover"
app:layout_constraintTop_toBottomOf="@id/iv_cover1" />
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:layout_marginTop="2dp"
android:layout_marginEnd="4dp"
android:layout_marginBottom="4dp"
app:layout_constraintBottom_toBottomOf="@id/iv_cover"
app:layout_constraintEnd_toEndOf="@id/iv_cover"
app:layout_constraintStart_toEndOf="@id/iv_cover3"
app:layout_constraintTop_toBottomOf="@id/iv_cover2" />
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_gravity="bottom"
android:background="@drawable/bg_gradient_black"
android:ellipsize="end"
android:gravity="bottom|start"
android:lines="2"
android:paddingHorizontal="6dp"
android:paddingVertical="6dp"
android:text="@string/book_name"
android:textColor="@android:color/white"
android:textSize="12sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:ignore="RtlHardcoded" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>