退出房间弹窗高斯模糊改为使用第三方SDK
This commit is contained in:
@@ -270,6 +270,8 @@ dependencies {
|
|||||||
|
|
||||||
api 'com.tencent.vasdolly:helper:3.0.3'
|
api 'com.tencent.vasdolly:helper:3.0.3'
|
||||||
implementation "io.github.tencent:vap:2.0.24"
|
implementation "io.github.tencent:vap:2.0.24"
|
||||||
|
|
||||||
|
implementation 'com.github.mmin18:realtimeblurview:1.2.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
String storageUrl = System.env.FLUTTER_STORAGE_BASE_URL ?: "https://storage.googleapis.com"
|
String storageUrl = System.env.FLUTTER_STORAGE_BASE_URL ?: "https://storage.googleapis.com"
|
||||||
|
@@ -1,17 +1,13 @@
|
|||||||
package com.yizhuan.erban.avroom.dialog
|
package com.yizhuan.erban.avroom.dialog
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
|
||||||
import android.graphics.Bitmap
|
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.graphics.drawable.ColorDrawable
|
import android.graphics.drawable.ColorDrawable
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import android.widget.ImageView
|
|
||||||
import android.widget.PopupWindow
|
import android.widget.PopupWindow
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.core.view.drawToBitmap
|
|
||||||
import androidx.core.view.isGone
|
import androidx.core.view.isGone
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
@@ -25,7 +21,6 @@ import com.yizhuan.erban.avroom.presenter.HomePartyPresenter
|
|||||||
import com.yizhuan.erban.common.widget.dialog.DialogManager.LambdaOkDialogListener
|
import com.yizhuan.erban.common.widget.dialog.DialogManager.LambdaOkDialogListener
|
||||||
import com.yizhuan.erban.common.widget.dialog.DialogManager.OkCancelDialogListener
|
import com.yizhuan.erban.common.widget.dialog.DialogManager.OkCancelDialogListener
|
||||||
import com.yizhuan.erban.ui.utils.RVDelegate
|
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||||
import com.yizhuan.erban.utils.FastBlur
|
|
||||||
import com.yizhuan.xchat_android_constants.XChatConstants
|
import com.yizhuan.xchat_android_constants.XChatConstants
|
||||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
||||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
|
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
|
||||||
@@ -35,14 +30,15 @@ import io.reactivex.disposables.Disposable
|
|||||||
|
|
||||||
|
|
||||||
@ActLayoutRes(R.layout.dialog_exit_room)
|
@ActLayoutRes(R.layout.dialog_exit_room)
|
||||||
class ExitRoomPopupWindow(val avRoomActivity: AVRoomActivity, val rootView: View) : PopupWindow() {
|
class ExitRoomPopupWindow(val avRoomActivity: AVRoomActivity) : PopupWindow() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun newInstance(avRoomActivity: AVRoomActivity, rootView: View): ExitRoomPopupWindow {
|
fun newInstance(avRoomActivity: AVRoomActivity): ExitRoomPopupWindow {
|
||||||
return ExitRoomPopupWindow(avRoomActivity, rootView)
|
return ExitRoomPopupWindow(avRoomActivity)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val recyclerView: RecyclerView
|
private val recyclerView: RecyclerView
|
||||||
@@ -74,11 +70,6 @@ class ExitRoomPopupWindow(val avRoomActivity: AVRoomActivity, val rootView: View
|
|||||||
|
|
||||||
animationStyle = R.style.style_anim_right_in_out
|
animationStyle = R.style.style_anim_right_in_out
|
||||||
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||||
|
|
||||||
contentView.findViewById<View>(R.id.tv_more).setOnClickListener {
|
|
||||||
//HomeMoreRoomActivity.start(context)
|
|
||||||
}
|
|
||||||
|
|
||||||
tvReport.setOnClickListener {
|
tvReport.setOnClickListener {
|
||||||
val roomInfo = AvRoomDataManager.get().mCurrentRoomInfo ?: return@setOnClickListener
|
val roomInfo = AvRoomDataManager.get().mCurrentRoomInfo ?: return@setOnClickListener
|
||||||
UIHelper.showReportPage(avRoomActivity, roomInfo.uid, XChatConstants.REPORT_TYPE_ROOM)
|
UIHelper.showReportPage(avRoomActivity, roomInfo.uid, XChatConstants.REPORT_TYPE_ROOM)
|
||||||
@@ -135,37 +126,20 @@ class ExitRoomPopupWindow(val avRoomActivity: AVRoomActivity, val rootView: View
|
|||||||
disposable?.dispose()
|
disposable?.dispose()
|
||||||
}
|
}
|
||||||
|
|
||||||
val bitmap = rootView.drawToBitmap()
|
|
||||||
val bitmapX = bitmap.width
|
|
||||||
val bitmapY = bitmap.height
|
|
||||||
val bitmap1 = Bitmap.createBitmap(
|
|
||||||
bitmap,
|
|
||||||
bitmapX - ScreenUtil.dip2px(250f),
|
|
||||||
0,
|
|
||||||
ScreenUtil.dip2px(250f),
|
|
||||||
bitmapY
|
|
||||||
)
|
|
||||||
blur(bitmap1, contentView.findViewById(R.id.iv_blur))
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun blur(bkg: Bitmap, view: ImageView) {
|
|
||||||
val scaleFactor = 8
|
|
||||||
var overlay =
|
|
||||||
Bitmap.createScaledBitmap(bkg, bkg.width / scaleFactor, bkg.height / scaleFactor, false)
|
|
||||||
overlay = FastBlur.blur(overlay, 5, true) //高斯模糊
|
|
||||||
view.setImageBitmap(overlay)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun handleExitRoom() {
|
private fun handleExitRoom() {
|
||||||
if (AvRoomDataManager.get().isSelfGamePlaying) {
|
if (AvRoomDataManager.get().isSelfGamePlaying) {
|
||||||
avRoomActivity.dialogManager.showOkCancelDialog("游戏中退出房间默认逃跑,确定进行此操作?", false,
|
avRoomActivity.dialogManager.showOkCancelDialog(
|
||||||
OkCancelDialogListener { avRoomActivity.toBack() })
|
"游戏中退出房间默认逃跑,确定进行此操作?", false
|
||||||
|
) { avRoomActivity.toBack() }
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (AvRoomDataManager.get().isOpenKTV && AvRoomDataManager.get().isOwnerOnMic) {
|
if (AvRoomDataManager.get().isOpenKTV && AvRoomDataManager.get().isOwnerOnMic) {
|
||||||
avRoomActivity.dialogManager.showOkCancelDialog("KTV模式下退出房间会移除您已点的所有歌曲,确定进行此操作?",
|
avRoomActivity.dialogManager.showOkCancelDialog(
|
||||||
false,
|
"KTV模式下退出房间会移除您已点的所有歌曲,确定进行此操作?",
|
||||||
OkCancelDialogListener { avRoomActivity.toBack() })
|
false
|
||||||
|
) { avRoomActivity.toBack() }
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if ((AvRoomDataManager.get().isQueuingMicro || AvRoomDataManager.get().isOpenPKMode)
|
if ((AvRoomDataManager.get().isQueuingMicro || AvRoomDataManager.get().isOpenPKMode)
|
||||||
|
@@ -110,16 +110,16 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
|||||||
addPKAction(optAdapter);
|
addPKAction(optAdapter);
|
||||||
addRoomPKAction(optAdapter);
|
addRoomPKAction(optAdapter);
|
||||||
addSingleRoomPKAction(optAdapter);
|
addSingleRoomPKAction(optAdapter);
|
||||||
addInviteFansOptAdapter();
|
|
||||||
addSendBroadcastAction(optAdapter);
|
addSendBroadcastAction(optAdapter);
|
||||||
|
addInviteFansOptAdapter();
|
||||||
addVipSendBroadcastAction(optAdapter);
|
addVipSendBroadcastAction(optAdapter);
|
||||||
addRedPacketAction(optAdapter);
|
addRedPacketAction(optAdapter);
|
||||||
addRoomLimit(optAdapter);
|
|
||||||
addGiftEffectAction(optAdapter);
|
|
||||||
addRoomSettingAction(optAdapter);
|
addRoomSettingAction(optAdapter);
|
||||||
|
addGiftEffectAction(optAdapter);
|
||||||
addOpenOrClosePublicScreenAction(optAdapter);
|
addOpenOrClosePublicScreenAction(optAdapter);
|
||||||
addRedPackageSwitch();
|
addRedPackageSwitch();
|
||||||
addCleanScreenAction(optAdapter);
|
addCleanScreenAction(optAdapter);
|
||||||
|
addRoomLimit(optAdapter);
|
||||||
addGiftValueAction(optAdapter);
|
addGiftValueAction(optAdapter);
|
||||||
addSuperAdminAction(optAdapter);
|
addSuperAdminAction(optAdapter);
|
||||||
rvOPtList.setAdapter(optAdapter);
|
rvOPtList.setAdapter(optAdapter);
|
||||||
|
@@ -495,8 +495,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
|||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
switch (v.getId()) {
|
switch (v.getId()) {
|
||||||
case R.id.room_more:
|
case R.id.room_more:
|
||||||
View view = requireActivity().findViewById(android.R.id.content);
|
ExitRoomPopupWindow.newInstance((AVRoomActivity) requireActivity())
|
||||||
ExitRoomPopupWindow.newInstance((AVRoomActivity) requireActivity(), view)
|
|
||||||
.showAtLocation(gameMainBinding.getRoot(), Gravity.END, 0, 0);
|
.showAtLocation(gameMainBinding.getRoot(), Gravity.END, 0, 0);
|
||||||
break;
|
break;
|
||||||
case R.id.ll_room_info:
|
case R.id.ll_room_info:
|
||||||
|
@@ -74,7 +74,7 @@ public class AllServiceVipLevelUPDialog extends BaseDialog {
|
|||||||
|
|
||||||
private void showVipNotifyBySVGA() {
|
private void showVipNotifyBySVGA() {
|
||||||
SpannableBuilder text = new SpannableBuilder()
|
SpannableBuilder text = new SpannableBuilder()
|
||||||
.append("引爆全场!恭喜", new ForegroundColorSpan(Color.WHITE))
|
.append("引爆全场!恭喜 ", new ForegroundColorSpan(Color.WHITE))
|
||||||
.append("-", new CircleImageSpan(new ColorDrawable(Color.TRANSPARENT), vipMessageInfo.getAvatar(), 50, 50))
|
.append("-", new CircleImageSpan(new ColorDrawable(Color.TRANSPARENT), vipMessageInfo.getAvatar(), 50, 50))
|
||||||
.append(" " + StringExtensionKt.sub(vipMessageInfo.getNick(), 6) + " ", new ForegroundColorSpan(getContext().getResources().getColor(R.color.notice_nick)))
|
.append(" " + StringExtensionKt.sub(vipMessageInfo.getNick(), 6) + " ", new ForegroundColorSpan(getContext().getResources().getColor(R.color.notice_nick)))
|
||||||
.append("贵族身份升级为" + vipMessageInfo.getCurrVipName(), new ForegroundColorSpan(Color.WHITE)+"!");
|
.append("贵族身份升级为" + vipMessageInfo.getCurrVipName(), new ForegroundColorSpan(Color.WHITE)+"!");
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 798 B |
Binary file not shown.
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 941 B |
@@ -12,11 +12,18 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:background="@color/blue">
|
tools:background="@color/blue">
|
||||||
|
|
||||||
<ImageView
|
<!-- <ImageView
|
||||||
android:id="@+id/iv_blur"
|
android:id="@+id/iv_blur"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:scaleType="fitXY" />
|
android:scaleType="fitXY" />-->
|
||||||
|
|
||||||
|
<com.github.mmin18.widget.RealtimeBlurView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:realtimeBlurRadius="20dp"
|
||||||
|
app:realtimeDownsampleFactor="3"
|
||||||
|
app:realtimeOverlayColor="#B3020023" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="250dp"
|
android:layout_width="250dp"
|
||||||
|
Reference in New Issue
Block a user