修改照片预览

This commit is contained in:
squallzhjch 2023-01-11 15:12:15 +08:00
parent 1d48ff0cce
commit e7ed854f2d
3 changed files with 85 additions and 63 deletions

View File

@ -183,16 +183,19 @@ class ObtainMessageFragment : Fragment() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (obtainMessageViewModel.getMessageLiveData().value!=null&&Constant.message_status_send_over.equals((obtainMessageViewModel.getMessageLiveData().value as GreetingMessage).status)) { if (obtainMessageViewModel.getMessageLiveData().value != null && Constant.message_status_send_over.equals(
binding.tvMessageTitle.isEnabled=false (obtainMessageViewModel.getMessageLiveData().value as GreetingMessage).status
binding.btnStartPhoto.isEnabled=false )
binding.btnStartCamera.isEnabled=false ) {
binding.btnStartRecord.isEnabled=false binding.tvMessageTitle.isEnabled = false
binding.btnSelectSound.isEnabled=false binding.btnStartPhoto.isEnabled = false
binding.edtSendFrom.isEnabled=false binding.btnStartCamera.isEnabled = false
binding.edtSendTo.isEnabled=false binding.btnStartRecord.isEnabled = false
binding.btnSendTime.isEnabled=false binding.btnSelectSound.isEnabled = false
binding.btnObtainMessageConfirm.isEnabled=false binding.edtSendFrom.isEnabled = false
binding.edtSendTo.isEnabled = false
binding.btnSendTime.isEnabled = false
binding.btnObtainMessageConfirm.isEnabled = false
binding.tvPhotoName.isEnabled = false binding.tvPhotoName.isEnabled = false
binding.tvAudioName.isEnabled = false binding.tvAudioName.isEnabled = false
binding.imgPhotoDelete.isEnabled = false binding.imgPhotoDelete.isEnabled = false
@ -675,10 +678,10 @@ class ObtainMessageFragment : Fragment() {
binding.tvPhotoName.setOnClickListener { binding.tvPhotoName.setOnClickListener {
val viewData = ViewData() val viewData = ViewData()
viewData.imageSrc = obtainMessageViewModel.getMessageLiveData().value!!.imageUrl viewData.imageSrc = obtainMessageViewModel.getMessageLiveData().value!!.imageUrl
viewData.targetX = Utils.dp2px(context, 10F).toFloat() viewData.targetX = Utils.dp2px(requireContext(), 10F).toFloat()
viewData.targetWidth = viewData.targetWidth =
DisplayUtils.getScreenWidthPixels(activity) - Utils.dp2px(context, 20F) DisplayUtils.getScreenWidthPixels(requireActivity()) - Utils.dp2px(requireContext(), 20F)
viewData.targetHeight = Utils.dp2px(context, 200F) viewData.targetHeight = Utils.dp2px(requireContext(), 200F)
val viewDataList = listOf(viewData) val viewDataList = listOf(viewData)
binding.imageViewer.overlayStatusBar(true) // ImageViewer 是否会占据 StatusBar 的空间 binding.imageViewer.overlayStatusBar(true) // ImageViewer 是否会占据 StatusBar 的空间
.viewData(viewDataList) // 图片数据 .viewData(viewDataList) // 图片数据

View File

@ -32,6 +32,7 @@ class ObtainMessageViewModel @Inject constructor(
private val pre: PreferencesRepository, private val pre: PreferencesRepository,
) : ViewModel() { ) : ViewModel() {
var username = "" var username = ""
init { init {
viewModelScope.launch { viewModelScope.launch {
pre.loginUser().collectLatest { pre.loginUser().collectLatest {
@ -47,6 +48,7 @@ class ObtainMessageViewModel @Inject constructor(
fun setCurrentMessage(msg: GreetingMessage) { fun setCurrentMessage(msg: GreetingMessage) {
msgLiveData.value = msg
msgLiveData.postValue(msg) msgLiveData.postValue(msg)
} }

View File

@ -1,19 +1,20 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="@dimen/activity_default_padding" android:padding="@dimen/activity_default_padding"
tools:context="com.navinfo.volvo.ui.fragments.message.ObtainMessageFragment"> tools:context="com.navinfo.volvo.ui.fragments.message.ObtainMessageFragment">
<ScrollView <ScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:overScrollMode="never" android:overScrollMode="never"
android:scrollbars="none"> android:scrollbars="none"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@ -24,10 +25,10 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/default_widget_padding" android:layout_margin="@dimen/default_widget_padding"
android:hint="问候信息"
app:counterEnabled="true" app:counterEnabled="true"
app:counterMaxLength="10" app:counterMaxLength="10"
app:errorEnabled="true" app:errorEnabled="true"
android:hint="问候信息"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
@ -42,9 +43,9 @@
<com.nhaarman.supertooltips.ToolTipRelativeLayout <com.nhaarman.supertooltips.ToolTipRelativeLayout
android:id="@+id/tt_title" android:id="@+id/tt_title"
app:layout_constraintTop_toBottomOf="@id/ti_layout_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/ti_layout_title" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/label_message_subtitle" android:id="@+id/label_message_subtitle"
@ -87,48 +88,56 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="上传图片:"></TextView> android:text="上传图片:"></TextView>
<LinearLayout <LinearLayout
android:id="@+id/layer_get_photo" android:id="@+id/layer_get_photo"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btn_start_camera" android:id="@+id/btn_start_camera"
style="@style/Widget.Material3.Button.ElevatedButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.ElevatedButton" android:padding="@dimen/default_widget_padding"
app:icon="@drawable/ic_baseline_camera_24"
android:text="点击拍照" android:text="点击拍照"
android:padding="@dimen/default_widget_padding"></com.google.android.material.button.MaterialButton> app:icon="@drawable/ic_baseline_camera_24"></com.google.android.material.button.MaterialButton>
<Space <Space
android:layout_width="@dimen/default_widget_padding" android:layout_width="@dimen/default_widget_padding"
android:layout_height="wrap_content"></Space> android:layout_height="wrap_content"></Space>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btn_start_photo" android:id="@+id/btn_start_photo"
style="@style/Widget.Material3.Button.ElevatedButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.ElevatedButton" android:padding="@dimen/default_widget_padding"
app:icon="@drawable/ic_baseline_image_search_24"
android:text="相册选择" android:text="相册选择"
android:padding="@dimen/default_widget_padding"></com.google.android.material.button.MaterialButton> app:icon="@drawable/ic_baseline_image_search_24"></com.google.android.material.button.MaterialButton>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/layer_photo_result" android:id="@+id/layer_photo_result"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:visibility="gone" android:orientation="horizontal"
android:orientation="horizontal"> android:visibility="gone">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/tv_photo_name" android:id="@+id/tv_photo_name"
android:textColor="@android:color/holo_blue_dark"
android:padding="@dimen/default_widget_padding"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"></com.google.android.material.textview.MaterialTextView> android:layout_weight="1"
android:padding="@dimen/default_widget_padding"
android:textColor="@android:color/holo_blue_dark"></com.google.android.material.textview.MaterialTextView>
<Space <Space
android:layout_width="@dimen/default_widget_padding" android:layout_width="@dimen/default_widget_padding"
android:layout_height="wrap_content"></Space> android:layout_height="wrap_content"></Space>
<com.google.android.material.imageview.ShapeableImageView <com.google.android.material.imageview.ShapeableImageView
android:id="@+id/img_photo_delete" android:id="@+id/img_photo_delete"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -144,8 +153,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:scaleType="fitCenter"> android:scaleType="fitCenter"></androidx.appcompat.widget.AppCompatImageView>
</androidx.appcompat.widget.AppCompatImageView>
<com.nhaarman.supertooltips.ToolTipRelativeLayout <com.nhaarman.supertooltips.ToolTipRelativeLayout
android:id="@+id/tt_pic" android:id="@+id/tt_pic"
@ -156,8 +164,8 @@
style="@style/default_line" style="@style/default_line"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_marginVertical="@dimen/default_widget_padding" android:layout_marginVertical="@dimen/default_widget_padding"
android:gravity="center_vertical"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
@ -170,31 +178,35 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="上传音频:"></TextView> android:text="上传音频:"></TextView>
<LinearLayout <LinearLayout
android:id="@+id/layer_get_audio" android:id="@+id/layer_get_audio"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:orientation="horizontal"> android:orientation="horizontal">
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btn_start_record" android:id="@+id/btn_start_record"
style="@style/Widget.Material3.Button.ElevatedButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.ElevatedButton" android:padding="@dimen/default_widget_padding"
app:icon="@drawable/ic_baseline_fiber_manual_record_24"
android:text="长按录音" android:text="长按录音"
android:padding="@dimen/default_widget_padding"></com.google.android.material.button.MaterialButton> app:icon="@drawable/ic_baseline_fiber_manual_record_24"></com.google.android.material.button.MaterialButton>
<Space <Space
android:layout_width="@dimen/default_widget_padding" android:layout_width="@dimen/default_widget_padding"
android:layout_height="wrap_content"></Space> android:layout_height="wrap_content"></Space>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btn_select_sound" android:id="@+id/btn_select_sound"
style="@style/Widget.Material3.Button.ElevatedButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.ElevatedButton" android:padding="@dimen/default_widget_padding"
app:icon="@drawable/ic_baseline_audio_file_24"
android:text="音频选择" android:text="音频选择"
android:padding="@dimen/default_widget_padding"></com.google.android.material.button.MaterialButton> app:icon="@drawable/ic_baseline_audio_file_24"></com.google.android.material.button.MaterialButton>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
@ -202,19 +214,22 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:visibility="gone" android:orientation="horizontal"
android:orientation="horizontal"> android:visibility="gone">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/tv_audio_name" android:id="@+id/tv_audio_name"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@android:color/holo_blue_dark"
android:padding="@dimen/default_widget_padding"
android:layout_weight="1" android:layout_weight="1"
android:text=""></com.google.android.material.textview.MaterialTextView> android:padding="@dimen/default_widget_padding"
android:text=""
android:textColor="@android:color/holo_blue_dark"></com.google.android.material.textview.MaterialTextView>
<Space <Space
android:layout_width="@dimen/default_widget_padding" android:layout_width="@dimen/default_widget_padding"
android:layout_height="wrap_content"></Space> android:layout_height="wrap_content"></Space>
<com.google.android.material.imageview.ShapeableImageView <com.google.android.material.imageview.ShapeableImageView
android:id="@+id/img_audio_delete" android:id="@+id/img_audio_delete"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -230,8 +245,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:visibility="gone" android:orientation="horizontal"
android:orientation="horizontal"> android:visibility="gone">
</LinearLayout> </LinearLayout>
@ -283,11 +298,11 @@
android:text="我是谁:"></TextView> android:text="我是谁:"></TextView>
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
android:enabled="false"
android:id="@+id/edt_send_from" android:id="@+id/edt_send_from"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/selector_bg_4_round_corner"></androidx.appcompat.widget.AppCompatEditText> android:background="@drawable/selector_bg_4_round_corner"
android:enabled="false"></androidx.appcompat.widget.AppCompatEditText>
</LinearLayout> </LinearLayout>
<com.nhaarman.supertooltips.ToolTipRelativeLayout <com.nhaarman.supertooltips.ToolTipRelativeLayout
@ -318,19 +333,13 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"></androidx.appcompat.widget.AppCompatSpinner> android:layout_height="wrap_content"></androidx.appcompat.widget.AppCompatSpinner>
<indi.liyi.viewer.ImageViewer
android:id="@+id/imageViewer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
app:ivr_dragMode="agile" />
</LinearLayout> </LinearLayout>
<com.nhaarman.supertooltips.ToolTipRelativeLayout <com.nhaarman.supertooltips.ToolTipRelativeLayout
android:id="@+id/tt_send_to" android:id="@+id/tt_send_to"
app:layout_constraintTop_toBottomOf="@id/ti_layout_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/ti_layout_title" />
<LinearLayout <LinearLayout
style="@style/default_line" style="@style/default_line"
@ -352,22 +361,24 @@
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btn_send_time" android:id="@+id/btn_send_time"
style="@style/Widget.Material3.Button.ElevatedButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.ElevatedButton" android:padding="@dimen/default_widget_padding"
app:icon="@drawable/ic_baseline_access_time_24"
android:text="选择时间" android:text="选择时间"
android:padding="@dimen/default_widget_padding"></com.google.android.material.button.MaterialButton> app:icon="@drawable/ic_baseline_access_time_24"></com.google.android.material.button.MaterialButton>
</LinearLayout> </LinearLayout>
<com.nhaarman.supertooltips.ToolTipRelativeLayout <com.nhaarman.supertooltips.ToolTipRelativeLayout
android:id="@+id/tt_send_time" android:id="@+id/tt_send_time"
app:layout_constraintTop_toBottomOf="@id/ti_layout_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/ti_layout_title" />
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView> </ScrollView>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -395,4 +406,10 @@
android:text="修改保存"></com.google.android.material.button.MaterialButton> android:text="修改保存"></com.google.android.material.button.MaterialButton>
</LinearLayout> </LinearLayout>
<indi.liyi.viewer.ImageViewer
android:id="@+id/imageViewer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
app:ivr_dragMode="agile" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>