修改bookshelf grid显示效果2

pull/69/head
Administrator 5 years ago
parent d9f58efaf1
commit e0659cc9a2
  1. 5
      app/src/main/java/io/legado/app/ui/main/bookshelf/books/BooksAdapterGrid.kt
  2. 2
      app/src/main/java/io/legado/app/ui/main/bookshelf/books/BooksFragment.kt
  3. 6
      app/src/main/java/io/legado/app/ui/widget/BadgeView.kt
  4. 10
      app/src/main/res/layout/item_bookshelf_grid.xml
  5. 2
      app/src/main/res/values/arrays.xml
  6. 4
      app/src/main/res/values/attrs.xml

@ -12,16 +12,13 @@ import kotlinx.android.synthetic.main.item_bookshelf_grid.view.*
import org.jetbrains.anko.sdk27.listeners.onClick
import org.jetbrains.anko.sdk27.listeners.onLongClick
class BooksAdapterGrid(context: Context, private val span: Int, private val callBack: CallBack) :
class BooksAdapterGrid(context: Context, private val callBack: CallBack) :
BooksAdapter(context, R.layout.item_bookshelf_grid) {
override fun convert(holder: ItemViewHolder, item: Book, payloads: MutableList<Any>) {
with(holder.itemView) {
if (payloads.isEmpty()) {
ATH.applyBackgroundTint(this)
tv_name.textSize = (16 - span).toFloat()
bv_author.textSize = (10 - span).toFloat()
bv_unread.textSize = (10 - span).toFloat()
tv_name.text = item.name
bv_author.text = item.author
item.getDisplayCover()?.let {

@ -71,7 +71,7 @@ class BooksFragment : BaseFragment(R.layout.fragment_books),
booksAdapter = BooksAdapterList(requireContext(), this)
} else {
rv_bookshelf.layoutManager = GridLayoutManager(context, bookshelfLayout + 2)
booksAdapter = BooksAdapterGrid(requireContext(), bookshelfLayout, this)
booksAdapter = BooksAdapterGrid(requireContext(),this)
}
rv_bookshelf.adapter = booksAdapter
}

@ -74,6 +74,10 @@ class BadgeView @JvmOverloads constructor(
}
init {
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.BadgeView)
val radios =
typedArray.getDimensionPixelOffset(R.styleable.BadgeView_bv_radius, 8)
if (layoutParams !is LayoutParams) {
val layoutParams = LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
@ -88,7 +92,7 @@ class BadgeView @JvmOverloads constructor(
//setTypeface(Typeface.DEFAULT_BOLD);
setTextSize(TypedValue.COMPLEX_UNIT_SP, 11f)
setPadding(dip2Px(5f), dip2Px(1f), dip2Px(5f), dip2Px(1f))
radius = 8f
radius = radios.toFloat()
// set default background
setBackground(radius, context.accentColor)

@ -51,19 +51,19 @@
<FrameLayout
android:id="@+id/fl_author"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/iv_cover"
app:layout_constraintBottom_toBottomOf="@id/iv_cover">
<io.legado.app.ui.widget.BadgeView
android:id="@+id/bv_author"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center|bottom"
android:layout_gravity="center"
android:includeFontPadding="false"
android:layout_margin="5dp"
android:singleLine="true"
app:bv_radius="0dp"
tools:ignore="RtlHardcoded" />
</FrameLayout>
@ -78,7 +78,7 @@
android:ellipsize="end"
android:text="@string/book_name"
android:textColor="@color/tv_text_default"
android:textSize="16sp"
android:textSize="12sp"
app:layout_constraintLeft_toLeftOf="@+id/iv_cover"
app:layout_constraintRight_toRightOf="@+id/iv_cover"
app:layout_constraintTop_toBottomOf="@+id/iv_cover"

@ -40,7 +40,7 @@
<item>@string/layout_grid3</item>
<item>@string/layout_grid4</item>
<item>@string/layout_grid5</item>
<!-- <item>@string/layout_grid6</item> -->
<item>@string/layout_grid6</item>
</string-array>
<string-array name="indent">

@ -140,4 +140,8 @@
<declare-styleable name="ATEAccentBgTextView">
<attr name="abt_radius" format="dimension" />
</declare-styleable>
<declare-styleable name="BadgeView">
<attr name="bv_radius" format="dimension" />
</declare-styleable>
</resources>
Loading…
Cancel
Save