From 2fbd39c63d146830743bcdc32d915df554794932 Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Fri, 9 Dec 2022 05:11:38 +0100 Subject: Omoguceno zumiranje i preuzimanje slika kada se uvelicaju #83 --- Client/BrzoDoLokacije/app/build.gradle | 3 ++ .../Activities/ActivityOpenedImages.kt | 34 +++++++++++++++++++++- .../Adapters/OpenedPostImageAdapter.kt | 13 +++++---- .../src/main/res/layout/activity_opened_images.xml | 24 +++++++-------- .../app/src/main/res/layout/opened_post_image.xml | 12 ++++---- .../app/src/main/res/values/colors.xml | 1 + 6 files changed, 61 insertions(+), 26 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/build.gradle b/Client/BrzoDoLokacije/app/build.gradle index 9ce9b96..0bc0fe8 100644 --- a/Client/BrzoDoLokacije/app/build.gradle +++ b/Client/BrzoDoLokacije/app/build.gradle @@ -76,4 +76,7 @@ dependencies { //KeyboardVisibilityEvents implementation 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:3.0.0-RC3' + + //zoom + implementation 'com.github.piasy:GlideImageLoader:1.8.1' } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityOpenedImages.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityOpenedImages.kt index 183f460..d1f1e4c 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityOpenedImages.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityOpenedImages.kt @@ -1,16 +1,25 @@ package com.example.brzodolokacije.Activities +import android.graphics.Bitmap +import android.graphics.drawable.Drawable import android.os.Build import android.os.Bundle +import android.provider.MediaStore +import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.PagerSnapHelper import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.SnapHelper +import com.bumptech.glide.Glide +import com.bumptech.glide.request.target.CustomTarget +import com.bumptech.glide.request.transition.Transition import com.example.brzodolokacije.Adapters.OpenedPostImageAdapter import com.example.brzodolokacije.Models.PostImage import com.example.brzodolokacije.Models.PostPreview +import com.example.brzodolokacije.Services.RetrofitHelper import com.example.brzodolokacije.databinding.ActivityOpenedImagesBinding +import java.util.* class ActivityOpenedImages : AppCompatActivity() { lateinit var binding:ActivityOpenedImagesBinding @@ -31,10 +40,33 @@ class ActivityOpenedImages : AppCompatActivity() { } setRecyclerView() + setListeners() } fun setListeners(){ - + binding.btnBackToPost.setOnClickListener { + finish() + } + binding.btnDownload.setOnClickListener { + //uzmi id trenutne slike + var selected:PostImage?=null + linearLayout?.findFirstVisibleItemPosition()?.let { it1 -> selected=images?.get(it1) } + if(selected!=null){ + //sacuvaj na telefonu + var image=Glide.with(this) + .asBitmap() + .load(RetrofitHelper.baseUrl + "/api/post/image/" + selected!!._id) + .into(object : CustomTarget(){ + override fun onResourceReady(resource: Bitmap, transition: Transition?) { + Toast.makeText(this@ActivityOpenedImages,"Slika se preuzima...",Toast.LENGTH_LONG).show() + MediaStore.Images.Media.insertImage(contentResolver, resource, "odyssey_"+ Calendar.getInstance().timeInMillis , ""); + Toast.makeText(this@ActivityOpenedImages,"Slika je sačuvana.",Toast.LENGTH_LONG).show() + } + override fun onLoadCleared(placeholder: Drawable?) { + } + }) + } + } } fun setRecyclerView(){ diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/OpenedPostImageAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/OpenedPostImageAdapter.kt index 53f2a37..525549d 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/OpenedPostImageAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/OpenedPostImageAdapter.kt @@ -1,13 +1,16 @@ package com.example.brzodolokacije.Adapters import android.app.Activity +import android.net.Uri import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.bumptech.glide.Glide import com.example.brzodolokacije.Models.PostImage import com.example.brzodolokacije.Services.RetrofitHelper import com.example.brzodolokacije.databinding.OpenedPostImageBinding +import com.github.piasy.biv.BigImageViewer +import com.github.piasy.biv.loader.glide.GlideImageLoader +import com.github.piasy.biv.view.BigImageView class OpenedPostImageAdapter(val items:List?,val activity:Activity): RecyclerView.Adapter() { lateinit var binding:OpenedPostImageBinding @@ -15,16 +18,14 @@ class OpenedPostImageAdapter(val items:List?,val activity:Activity): inner class ViewHolder(itemView: OpenedPostImageBinding) : RecyclerView.ViewHolder(itemView.root) { fun bind(item:PostImage){ binding.apply { - if(item!=null) { - Glide.with(activity) - .load(RetrofitHelper.baseUrl + "/api/post/image/compress/" + item._id) - .into(ivOpenedImage) - } + ivOpenedImage.setInitScaleType(BigImageView.INIT_SCALE_TYPE_FIT_START) + ivOpenedImage.showImage(Uri.parse(RetrofitHelper.baseUrl + "/api/post/image/compress/" + item._id)) } } } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + BigImageViewer.initialize(GlideImageLoader.with(activity)) val inflater = LayoutInflater.from(parent.context) binding= OpenedPostImageBinding.inflate(inflater,parent,false) return ViewHolder(binding) diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_opened_images.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_opened_images.xml index 2d3de20..3a1fbbc 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_opened_images.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_opened_images.xml @@ -8,40 +8,38 @@ android:background="@color/design_default_color_background"> - - + \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/opened_post_image.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/opened_post_image.xml index 739e557..e63a903 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/opened_post_image.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/opened_post_image.xml @@ -1,14 +1,14 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml b/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml index 9cd2082..e5ec888 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml @@ -8,6 +8,7 @@ #FF000000 #FFFFFFFF #c4c4c4 + #66c4c4c4 #DE093A4C #183e4b #747474 -- cgit v1.2.3