71 lines
2.5 KiB
Kotlin
71 lines
2.5 KiB
Kotlin
package com.example.testes
|
|
|
|
import android.content.Context
|
|
import android.content.Intent
|
|
import android.os.Bundle
|
|
import android.util.Log
|
|
import androidx.fragment.app.Fragment
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import android.widget.ImageView
|
|
import androidx.core.content.ContextCompat
|
|
import androidx.recyclerview.widget.GridLayoutManager
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
import com.bumptech.glide.Glide
|
|
|
|
class ImageGridFragment(val images: List<BooruImage>) : Fragment() {
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
}
|
|
|
|
override fun onCreateView(
|
|
inflater: LayoutInflater, container: ViewGroup?,
|
|
savedInstanceState: Bundle?
|
|
): View? {
|
|
// Inflate the layout for this fragment
|
|
val layoutView = inflater.inflate(R.layout.fragment_image_grid, container, false)
|
|
|
|
val recyclerView : RecyclerView = layoutView.findViewById(R.id.imageGridRecV)
|
|
recyclerView.adapter = ImageGridAdapter(images)
|
|
recyclerView.layoutManager = GridLayoutManager(layoutView.context, 3)
|
|
|
|
return layoutView
|
|
}
|
|
|
|
inner class ImageGridAdapter(val imageList: List<BooruImage>) :
|
|
RecyclerView.Adapter<ImageGridAdapter.ViewHolder>() {
|
|
|
|
lateinit var context: Context;
|
|
|
|
/* Creates and inflates view and return FlowerViewHolder. */
|
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
|
context = parent.context;
|
|
val view = LayoutInflater.from(parent.context)
|
|
.inflate(R.layout.image_grid_item, parent, false)
|
|
return ViewHolder(view)
|
|
}
|
|
|
|
/* Gets current flower and uses it to bind view. */
|
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
|
Glide.with(context)
|
|
.load(imageList[position].preview_url)
|
|
.placeholder(ContextCompat.getDrawable(context, R.drawable.ic_launcher_foreground))
|
|
.into(holder.imageview)
|
|
|
|
holder.imageview.setOnClickListener(holder)
|
|
}
|
|
|
|
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), View.OnClickListener {
|
|
var imageview: ImageView = itemView.findViewById(R.id.image)
|
|
|
|
override fun onClick(view: View?) {
|
|
val intent = Intent(view?.context, ImageViewerActivity::class.java)
|
|
startActivity(intent)
|
|
}
|
|
}
|
|
|
|
override fun getItemCount(): Int = imageList.size
|
|
}
|
|
} |