diff options
Diffstat (limited to 'Client')
6 files changed, 61 insertions, 26 deletions
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<Bitmap>(){ + override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) { + 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<PostImage>?,val activity:Activity): RecyclerView.Adapter<OpenedPostImageAdapter.ViewHolder>() { lateinit var binding:OpenedPostImageBinding @@ -15,16 +18,14 @@ class OpenedPostImageAdapter(val items:List<PostImage>?,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"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" - android:layout_height="40dp" + android:layout_height="50dp" android:elevation="5dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" + android:background="@color/unfollow_transparent" android:id="@+id/clImageHeader"> <ImageButton - android:layout_width="35dp" - android:layout_height="35dp" + android:layout_width="50dp" + android:layout_height="50dp" app:layout_constraintStart_toStartOf="parent" - android:foregroundGravity="center_vertical" - android:background="@color/design_default_color_background" + android:background="@null" android:src="@drawable/ic_baseline_arrow_back" android:id="@+id/btnBackToPost"/> <ImageButton - android:layout_width="35dp" - android:layout_height="35dp" + android:layout_width="50dp" + android:layout_height="50dp" app:layout_constraintEnd_toEndOf="parent" - android:foregroundGravity="center_vertical" - android:background="@color/design_default_color_background" + android:background="@null" android:src="@drawable/ic_baseline_arrow_back" android:id="@+id/btnDownload"/> </androidx.constraintlayout.widget.ConstraintLayout> - <androidx.constraintlayout.widget.ConstraintLayout + <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="match_parent" android:layout_height="match_parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintStart_toStartOf="parent" + android:orientation="vertical" android:id="@+id/rvParent"> <androidx.recyclerview.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rvImages"/> - </androidx.constraintlayout.widget.ConstraintLayout> + </androidx.appcompat.widget.LinearLayoutCompat> </androidx.constraintlayout.widget.ConstraintLayout>
\ 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 @@ <?xml version="1.0" encoding="utf-8"?> -<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> - <ImageView + <com.github.piasy.biv.view.BigImageView android:layout_width="match_parent" - android:layout_height="wrap_content" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintBottom_toBottomOf="parent" + android:layout_height="match_parent" + app:initScaleType="centerInside" + app:optimizeDisplay="true" android:id="@+id/ivOpenedImage"/> -</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file +</androidx.appcompat.widget.LinearLayoutCompat>
\ 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 @@ <color name="black">#FF000000</color> <color name="white">#FFFFFFFF</color> <color name="unfollow">#c4c4c4</color> + <color name="unfollow_transparent">#66c4c4c4</color> <color name="dark_blue_transparent">#DE093A4C</color> <color name="button_main">#183e4b</color> <color name="grey">#747474</color> |