diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2016-08-25 13:46:33 +0200 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2016-08-25 13:46:33 +0200 |
commit | f1ecbf2ff8ea9788341f9e1a33906e2f81c55cc6 (patch) | |
tree | 940747bb57e436211e807ac7eaa3c491b3d5e9bc /src | |
parent | 6f72128c454662b9003fd2c8aa19b19ec68a9ebd (diff) |
made image preview size smaller for low res images
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java index 56517e3b..6763f3f5 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java @@ -448,16 +448,22 @@ public class MessageAdapter extends ArrayAdapter<Message> { viewHolder.image.setVisibility(View.VISIBLE); FileParams params = message.getFileParams(); double target = metrics.density * 288; - int scalledW; - int scalledH; - if (params.width <= params.height) { - scalledW = (int) (params.width / ((double) params.height / target)); - scalledH = (int) target; + int scaledW; + int scaledH; + if (Math.max(params.height, params.width) * metrics.density <= target) { + scaledW = (int) (params.width * metrics.density); + scaledH = (int) (params.height * metrics.density); + } else if (Math.max(params.height,params.width) <= target) { + scaledW = params.width; + scaledH = params.height; + } else if (params.width <= params.height) { + scaledW = (int) (params.width / ((double) params.height / target)); + scaledH = (int) target; } else { - scalledW = (int) target; - scalledH = (int) (params.height / ((double) params.width / target)); + scaledW = (int) target; + scaledH = (int) (params.height / ((double) params.width / target)); } - LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(scalledW, scalledH); + LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(scaledW, scaledH); layoutParams.setMargins(0, (int) (metrics.density * 4), 0, (int) (metrics.density * 4)); viewHolder.image.setLayoutParams(layoutParams); activity.loadBitmap(message, viewHolder.image); |