Commit 68f0c62e authored by wanglei's avatar wanglei

...提交部分ui...

parent 3fbf0155
......@@ -54,4 +54,8 @@ dependencies {
//ui第三方
implementation("com.github.JavaNoober.BackgroundLibrary:libraryx:1.7.6")
implementation 'com.github.bumptech.glide:glide:4.16.0'
//pdf浏览
implementation 'com.github.barteksc:pdfium-android:1.7.1'
}
\ No newline at end of file
......@@ -18,6 +18,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.SuperPDFReader"
tools:targetApi="31">
<activity
android:name=".activity.ImageSelectionActivity"
android:exported="false" />
<activity
android:name=".activity.PdfBrowserActivity"
android:exported="false" />
......
package com.base.superpdfreader.activity
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.base.superpdfreader.R
import com.base.superpdfreader.adapter.ImageSelectionAdapter
import com.base.superpdfreader.databinding.ActivityImageSelectionBinding
import com.base.superpdfreader.helps.BaseActivity
class ImageSelectionActivity : BaseActivity<ActivityImageSelectionBinding>() {
private lateinit var imageSelectionAdapter: ImageSelectionAdapter
override val binding: ActivityImageSelectionBinding by lazy {
ActivityImageSelectionBinding.inflate(layoutInflater)
}
override fun initView() {
imageSelectionAdapter = ImageSelectionAdapter()
}
}
\ No newline at end of file
package com.base.superpdfreader.adapter
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.superpdfreader.R
import com.base.superpdfreader.bean.ImageBean
import com.base.superpdfreader.databinding.ItemImageSelectedBinding
import com.base.superpdfreader.databinding.ItemImageSelectionBinding
import com.base.superpdfreader.view.XmlEx.inflate
import com.bumptech.glide.Glide
class ImageSelectionAdapter(val uiMode: Int = UI_IMAGE_GRID) : RecyclerView.Adapter<ImageSelectionAdapter.IMAGE>() {
private val imageBeans = arrayListOf<ImageBean>()
inner class IMAGE(view: View) : ViewHolder(view) {
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): IMAGE {
val layout = if (uiMode == UI_IMAGE_GRID) R.layout.item_image_selection else R.layout.item_image_selected
return IMAGE(R.layout.item_image_selection.inflate(parent))
}
override fun getItemCount(): Int {
return imageBeans.size
}
override fun onBindViewHolder(holder: IMAGE, position: Int) {
val data = imageBeans[position]
val context = holder.itemView.context
when (uiMode) {
UI_IMAGE_GRID -> {
val binding = ItemImageSelectionBinding.bind(holder.itemView)
if (data.isCamera) {
binding.flContent.visibility = View.GONE
binding.flCamera.visibility = View.VISIBLE
} else {
binding.flCamera.visibility = View.GONE
binding.flContent.visibility = View.VISIBLE
if (data.file?.exists() == true) {
Glide.with(context).load(data.file).into(binding.iv)
}
binding.ivSelector.isSelected = data.isSelect
binding.ivSelector.setOnClickListener {
data.isSelect = !data.isSelect
binding.ivSelector.isSelected = data.isSelect
notifyItemChanged(position, "KOKO")
}
}
}
UI_IMAGE_LIST -> {
val binding = ItemImageSelectedBinding.bind(holder.itemView)
if (data.file?.exists() == true) {
Glide.with(context).load(data.file).into(binding.iv)
}
binding.ivDelete.setOnClickListener {
}
}
}
}
override fun onBindViewHolder(holder: IMAGE, position: Int, payloads: MutableList<Any>) {
val context = holder.itemView.context
val data = imageBeans[position]
when (uiMode) {
UI_IMAGE_GRID -> {
val binding = ItemImageSelectionBinding.bind(holder.itemView)
if (payloads.isEmpty()) {
if (data.isCamera) {
binding.flContent.visibility = View.GONE
binding.flCamera.visibility = View.VISIBLE
} else {
binding.flCamera.visibility = View.GONE
binding.flContent.visibility = View.VISIBLE
if (data.file?.exists() == true) {
Glide.with(context).load(data.file).into(binding.iv)
}
binding.ivSelector.isSelected = data.isSelect
binding.ivSelector.setOnClickListener {
data.isSelect = !data.isSelect
binding.ivSelector.isSelected = data.isSelect
notifyItemChanged(position, "KOKO")
}
}
} else {
binding.ivSelector.isSelected = data.isSelect
super.onBindViewHolder(holder, position, payloads)
}
}
UI_IMAGE_LIST -> {
val binding = ItemImageSelectedBinding.bind(holder.itemView)
if (data.file?.exists() == true) {
Glide.with(context).load(data.file).into(binding.iv)
}
binding.ivDelete.setOnClickListener {
}
}
}
}
companion object {
const val UI_IMAGE_GRID = 0
const val UI_IMAGE_LIST = 1
}
}
\ No newline at end of file
package com.base.superpdfreader.bean
import java.io.File
data class ImageBean(val file: File? = null) {
var isCamera: Boolean = false
var isSelect: Boolean = false
}
......@@ -27,8 +27,6 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
BarUtils.setStatusBarLightMode(this, it)
}
// EventHelper.event("page_${javaClass.simpleName}")
initView()
initListener()
}
......
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/imageweixuan" android:state_selected="false" />
<item android:drawable="@mipmap/imagexuan" android:state_selected="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F4F5F9"
android:orientation="vertical"
tools:context=".activity.ImageSelectionActivity">
<FrameLayout
android:id="@+id/fl_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="UselessParent">
<FrameLayout
android:id="@+id/fl_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp"
tools:ignore="UselessParent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/fanhui"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Image Selection"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</FrameLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_image"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/fl_top"
app:spanCount="3" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:minHeight="100dp"
app:layout_constraintBottom_toBottomOf="parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_select_image"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/tv_import"
app:layout_constraintTop_toTopOf="parent" />
<com.noober.background.view.BLTextView
android:id="@+id/tv_import"
android:layout_width="135dp"
android:layout_height="40dp"
android:layout_marginVertical="20dp"
android:layout_marginEnd="16dp"
android:enabled="false"
android:gravity="center"
android:text="IMPORT"
android:textColor="@color/white"
android:textSize="17sp"
android:textStyle="bold"
app:bl_corners_radius="20dp"
app:bl_enabled_solid_color="#FF3835"
app:bl_unEnabled_solid_color="#D7DFE0"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/rv_select_image"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="All Images"
android:textColor="@color/black"
android:textSize="17sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/tv_import"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_import"
tools:ignore="HardcodedText" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp">
<com.noober.background.view.BLImageView
android:id="@+id/iv"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_margin="15dp"
app:bl_corners_radius="9dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_delete"
android:layout_width="29dp"
android:layout_height="29sp"
android:layout_margin="5dp"
android:src="@mipmap/imagedel"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView 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="106dp"
android:layout_height="106dp"
android:layout_margin="6dp"
android:elevation="0dp"
app:cardCornerRadius="9dp">
<FrameLayout
android:id="@+id/fl_camera"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#96D4FF"
android:visibility="gone">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@mipmap/image_camera_icon"
tools:ignore="ContentDescription" />
</FrameLayout>
<FrameLayout
android:id="@+id/fl_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_selector"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="bottom|end"
android:layout_margin="8dp"
android:src="@drawable/bg_image_selector"
tools:ignore="ContentDescription" />
</FrameLayout>
</androidx.cardview.widget.CardView>
\ No newline at end of file
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