mirror of
https://github.com/deltachat/deltachat-android.git
synced 2025-10-03 09:49:21 +02:00
fixes #466. Setting the background image provides for a image that is sufficiently large to fit portrait and landscape orientations. When displayed the shorter side is scaled to fit, the larger is then centered and cropped.
This commit is contained in:
parent
bfa08887e2
commit
16f5c6d889
3 changed files with 18 additions and 8 deletions
|
@ -1,10 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="match_parent" android:layout_width="match_parent">
|
||||
<org.thoughtcrime.securesms.components.InputAwareLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_height="match_parent" android:layout_width="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/conversation_background"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:ignore="ContentDescription"
|
||||
android:scaleType="centerCrop" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.InputAwareLayout
|
||||
android:id="@+id/layout_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
|
|
@ -175,6 +175,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||
private InputAwareLayout container;
|
||||
private View composePanel;
|
||||
protected Stub<ReminderView> reminderView;
|
||||
private ImageView backgroundView;
|
||||
|
||||
private AttachmentTypeSelector attachmentTypeSelector;
|
||||
private AttachmentManager attachmentManager;
|
||||
|
@ -798,6 +799,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||
quickAttachmentDrawer = ViewUtil.findById(this, R.id.quick_attachment_drawer);
|
||||
quickAttachmentToggle = ViewUtil.findById(this, R.id.quick_attachment_toggle);
|
||||
inputPanel = ViewUtil.findById(this, R.id.bottom_panel);
|
||||
backgroundView = ViewUtil.findById(this, R.id.conversation_background);
|
||||
|
||||
ImageButton quickCameraToggle = ViewUtil.findById(this, R.id.quick_camera_toggle);
|
||||
|
||||
|
@ -842,13 +844,13 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||
String backgroundImagePath = Prefs.getBackgroundImagePath(this);
|
||||
if(!backgroundImagePath.isEmpty()) {
|
||||
Drawable image = Drawable.createFromPath(backgroundImagePath);
|
||||
getWindow().setBackgroundDrawable(image);
|
||||
backgroundView.setImageDrawable(image);
|
||||
}
|
||||
else if(dynamicTheme.isDarkTheme(this)) {
|
||||
getWindow().setBackgroundDrawableResource(R.drawable.background_hd_dark);
|
||||
backgroundView.setImageResource(R.drawable.background_hd_dark);
|
||||
}
|
||||
else {
|
||||
getWindow().setBackgroundDrawableResource(R.drawable.background_hd);
|
||||
backgroundView.setImageResource(R.drawable.background_hd);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -136,13 +136,15 @@ public class ChatBackgroundActivity extends PassphraseRequiredActionBarActivity
|
|||
Display display = ServiceUtil.getWindowManager(context).getDefaultDisplay();
|
||||
Point size = new Point();
|
||||
display.getSize(size);
|
||||
// resize so that the larger side fits the screen accurately
|
||||
int largerSide = (size.x > size.y ? size.x : size.y);
|
||||
Bitmap scaledBitmap = GlideApp.with(context)
|
||||
.asBitmap()
|
||||
.load(imageUri)
|
||||
.centerCrop()
|
||||
.fitCenter()
|
||||
.skipMemoryCache(true)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.submit(size.x, size.y)
|
||||
.submit(largerSide, largerSide)
|
||||
.get();
|
||||
FileOutputStream outStream = new FileOutputStream(destinationPath);
|
||||
scaledBitmap.compress(Bitmap.CompressFormat.JPEG, 85, outStream);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue