From 58801d484db04c1fd361270a347043e6a4ee62c7 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 28 Nov 2018 12:12:20 +0100 Subject: [PATCH] Finished big pictures preview in chat --- app/src/main/java/org/linphone/utils/ImageUtils.java | 9 ++++++--- .../main/java/org/linphone/views/BitmapWorkerTask.java | 10 ++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/linphone/utils/ImageUtils.java b/app/src/main/java/org/linphone/utils/ImageUtils.java index bd60dad8e..10f0919fa 100644 --- a/app/src/main/java/org/linphone/utils/ImageUtils.java +++ b/app/src/main/java/org/linphone/utils/ImageUtils.java @@ -30,6 +30,7 @@ import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.net.Uri; import android.provider.MediaStore; +import android.util.DisplayMetrics; import android.util.TypedValue; import android.widget.ImageView; @@ -135,8 +136,10 @@ public class ImageUtils { } public static float dpToPixels(Context context, float dp) { - Resources r = context.getResources(); - float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics()); - return px; + return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); + } + + public static float pixelsToDp(Context context, float pixels) { + return pixels / ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT); } } diff --git a/app/src/main/java/org/linphone/views/BitmapWorkerTask.java b/app/src/main/java/org/linphone/views/BitmapWorkerTask.java index 9499693a3..5ba532a21 100644 --- a/app/src/main/java/org/linphone/views/BitmapWorkerTask.java +++ b/app/src/main/java/org/linphone/views/BitmapWorkerTask.java @@ -28,10 +28,13 @@ import android.media.ExifInterface; import android.net.Uri; import android.os.AsyncTask; import android.provider.MediaStore; +import android.view.ViewGroup; import android.widget.ImageView; +import android.widget.RelativeLayout; import org.linphone.mediastream.Log; import org.linphone.utils.FileUtils; +import org.linphone.utils.ImageUtils; import java.io.FileNotFoundException; import java.io.IOException; @@ -137,6 +140,13 @@ public class BitmapWorkerTask extends AsyncTask { final BitmapWorkerTask bitmapWorkerTask = getBitmapWorkerTask(imageView); if (this == bitmapWorkerTask && imageView != null) { imageView.setImageBitmap(bitmap); + if (bitmap.getWidth() > ImageUtils.dpToPixels(mContext, 300)) { + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(bitmap.getWidth(), ViewGroup.LayoutParams.WRAP_CONTENT); + int margin = (int) ImageUtils.dpToPixels(mContext, 5); + params.setMargins(margin, margin, margin, margin); + imageView.setLayoutParams(params); + imageView.invalidate(); + } } } }