Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。

Kotlin高仿微信-项目实践58篇,点击查看详情

效果图:

实现代码:

<?xml version="1.0" encoding="utf-8"?>
<layout><androidx.constraintlayout.widget.ConstraintLayoutxmlns: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_width="match_parent"android:layout_height="match_parent"android:background="@color/color_48d17a"><includelayout="@layout/wc_base_top_title"/><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/receive_payment_layout"android:layout_width="match_parent"android:layout_height="340dp"android:layout_marginVertical="20dp"android:layout_marginHorizontal="12dp"app:layout_constraintTop_toBottomOf="@+id/base_top_root_layout"app:layout_constraintStart_toStartOf="parent"android:background="#FFFFFF"><androidx.appcompat.widget.AppCompatImageViewandroid:id="@+id/receive_payment_icon"android:layout_width="26dp"android:layout_height="26dp"android:layout_marginTop="12dp"android:layout_marginLeft="10dp"app:layout_constraintTop_toTopOf="@+id/receive_payment_layout"app:layout_constraintStart_toStartOf="parent"android:src="@drawable/wc_receive_payment_icon"/><TextViewandroid:id="@+id/receive_payment_tip"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"app:layout_constraintTop_toTopOf="@+id/receive_payment_icon"app:layout_constraintBottom_toBottomOf="@+id/receive_payment_icon"app:layout_constraintStart_toEndOf="@+id/receive_payment_icon"android:text="向商家付款"android:textSize="16sp"android:textStyle="bold"android:textColor="#48d17a"/><ImageViewandroid:id="@+id/receive_payment_qrcode_icon"app:layout_constraintTop_toTopOf="@+id/receive_payment_layout"app:layout_constraintBottom_toBottomOf="@+id/receive_payment_layout"app:layout_constraintStart_toStartOf="parent"app:layout_constraintEnd_toEndOf="parent"android:layout_marginTop="0dp"android:layout_width="200dp"android:layout_height="200dp"android:src="@drawable/ic_launcher"/><LinearLayoutandroid:id="@+id/receive_payment_from_divide"android:layout_width="match_parent"android:layout_height="0.5dp"android:layout_marginHorizontal="12dp"android:layout_marginTop="8dp"android:background="@color/gray"android:orientation="horizontal"android:visibility="gone"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/receive_payment_qrcode_icon" /><LinearLayoutandroid:id="@+id/receive_payment_from_layout"android:layout_width="match_parent"android:layout_height="40dp"android:layout_marginHorizontal="12dp"android:layout_marginTop="12dp"android:orientation="horizontal"android:visibility="gone"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/receive_payment_qrcode_icon"><androidx.appcompat.widget.AppCompatImageViewandroid:id="@+id/receive_payment_from_avatar"android:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center_vertical"android:src="@drawable/ic_launcher" /><androidx.appcompat.widget.AppCompatTextViewandroid:id="@+id/receive_payment_from_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:layout_marginLeft="12dp"android:text="名称"android:textColor="@color/black" /><androidx.appcompat.widget.AppCompatTextViewandroid:id="@+id/receive_payment_from_balance"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="center_vertical|right"android:layout_marginRight="12dp"android:gravity="right"android:text="金额"android:textColor="@color/gray" /></LinearLayout></androidx.constraintlayout.widget.ConstraintLayout><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/receive_payment_mask_layout"android:layout_width="match_parent"android:layout_height="340dp"android:layout_marginHorizontal="12dp"android:layout_marginVertical="20dp"android:background="#FFFFFF"android:visibility="gone"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/base_top_root_layout"><androidx.appcompat.widget.AppCompatImageViewandroid:id="@+id/receive_payment_mask_icon"app:layout_constraintStart_toStartOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="80dp"android:layout_width="50dp"android:layout_height="50dp"android:src="@drawable/ic_launcher"/><androidx.appcompat.widget.AppCompatTextViewandroid:id="@+id/receive_payment_mask_name"app:layout_constraintStart_toStartOf="@+id/receive_payment_mask_icon"app:layout_constraintEnd_toEndOf="@+id/receive_payment_mask_icon"app:layout_constraintTop_toBottomOf="@+id/receive_payment_mask_icon"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="名称"android:textSize="20sp"android:textColor="@color/black"/><androidx.appcompat.widget.AppCompatTextViewandroid:id="@+id/receive_payment_mask_balance"app:layout_constraintStart_toStartOf="@+id/receive_payment_mask_icon"app:layout_constraintEnd_toEndOf="@+id/receive_payment_mask_icon"app:layout_constraintTop_toBottomOf="@+id/receive_payment_mask_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="30dp"android:text="¥0.00"android:textSize="30sp"android:textColor="@color/black"/></androidx.constraintlayout.widget.ConstraintLayout><com.wn.wechatclientdemo.view.LineBaseSmallViewandroid:id="@+id/receive_payment_qrcode"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/receive_payment_layout"android:layout_marginTop="20dp"android:layout_width="match_parent"android:layout_height="wrap_content"/></androidx.constraintlayout.widget.ConstraintLayout>
</layout>
/*** Author : wangning* Email : maoning20080809@163.com* Date : 2022/5/20 21:08* Description : 收付款*/
class ReceivePaymentFragment : BaseDataBindingFragment<WcReceivePaymentBinding>(){override fun getLayoutRes()  = R.layout.wc_receive_paymentoverride fun onViewCreated(view: View, savedInstanceState: Bundle?) {super.onViewCreated(view, savedInstanceState)super.builder().setTitleContent(R.string.wc_base_top_receive_payment).setTitleColor(R.color.white).setBack(R.drawable.wc_white_back)UIStatusUtils.setStatusBarColor(requireActivity(), BaseUtils.getColor(R.color.color_48d17a))//先判断是否已经注册if(!EventBus.getDefault().isRegistered(this)){EventBus.getDefault().register(this)}//二维码收款receive_payment_qrcode.builder().setLeftImage(R.drawable.wc_receive_payment_item_icon).setTitle(BaseUtils.getString(R.string.wc_receive_payment_qrcode)).hideContent().hideDevideingView().setTitleColor(R.color.white).setTitleSize(18f).setRootClick {Navigation.findNavController(it).navigate(R.id.action_qrcode_receive)}var account = DataStoreUtils.getAccount()var result = CommonUtils.QRCommon.QR_PAYMENT_CODE + accountvar bitmap = QRUtils.createQRCode(result, 300, 300,null);receive_payment_qrcode_icon.setImageBitmap(bitmap)}//向商家付款成功,显示动画private fun processMask(account : String, balace: Float){receive_payment_mask_layout.visibility = View.VISIBLEreceive_payment_mask_balance.text = CommonUtils.Base.getFormatBalanceUnit(balace)BaseUtils.showAvatar(account, receive_payment_mask_icon, receive_payment_mask_name)CoroutineScope(Dispatchers.Main).launch {delay(1000)val animationSet = AnimationSet(true)animationSet.setAnimationListener(object : Animation.AnimationListener{override fun onAnimationEnd(p0: Animation?) {receive_payment_mask_layout.visibility = View.GONE}override fun onAnimationRepeat(p0: Animation?) {}override fun onAnimationStart(p0: Animation?) {}})var scaleAnimation = ScaleAnimation(1f,0.0f,1f,0.0f,Animation.RELATIVE_TO_SELF,1f,Animation.RELATIVE_TO_SELF,1f)scaleAnimation.duration = 1500animationSet.addAnimation(scaleAnimation)receive_payment_mask_layout.startAnimation(animationSet)}}@Subscribe(threadMode = ThreadMode.MAIN)fun onMessageCallback(paymentBean: PaymentBean) {if(paymentBean == null){receive_payment_from_balance.text = "支付失败!"} else if(paymentBean.operator == CommonUtils.User.OPERATOR_MINUS){TagUtils.d("向商家付款:${paymentBean.balance} , ${paymentBean.fromAccount} , ${paymentBean.toAccount} , ${paymentBean.operator}")receive_payment_from_layout.visibility = View.VISIBLEreceive_payment_from_divide.visibility = View.VISIBLEreceive_payment_from_balance.text = paymentBean.balance.toString()BaseUtils.showAvatar(paymentBean.fromAccount, receive_payment_from_avatar,receive_payment_from_name)processMask(paymentBean.fromAccount, paymentBean.balance)}}override fun onDestroy() {super.onDestroy()EventBus.getDefault().unregister(this)UIStatusUtils.setStatusBarColor(requireActivity(), BaseUtils.getColor(R.color.wc_base_bg))}}

Kotlin高仿微信-第34篇-支付-向商家付款(二维码)相关推荐

  1. Flutter高仿微信-第21篇-支付-向商家付款(二维码)

    Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现代 ...

  2. Kotlin高仿微信-第35篇-支付-二维码收款(二维码)

      Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫. ...

  3. Kotlin高仿微信-第32篇-支付-我的零钱

     Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜 ...

  4. Kotlin高仿微信-第11篇-单聊-语音

     Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜 ...

  5. Kotlin高仿微信-第14篇-单聊-视频通话

    Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜索 ...

  6. Kotlin高仿微信-第20篇-个人信息

     Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜 ...

  7. Kotlin高仿微信-第6篇-主页-我的

     Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜 ...

  8. Kotlin高仿微信-第58篇-开通VIP

      Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫. ...

  9. Kotlin高仿微信-第26篇-朋友圈-选择图片、小视频对话框

     Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册.登录.主页.单聊(文本.表情.语音.图片.小视频.视频通话.语音通话.红包.转账).群聊.个人信息.朋友圈.支付服务.扫一扫.搜 ...

最新文章

  1. 早在公元前五百年,孙子就参透了数据库分区的真谛
  2. Linux学习之系统编程篇: 阻塞信号集、未决信号集、自定义信号集
  3. 2019ICPC(上海) - Counting Sequences I(dfs打表)
  4. 数据库兼容级别对数据备份还原的影响
  5. 的级联选择_级联接收机的计算及Y因子噪声因子测量法
  6. 解决:There was an unexpected error (type=Internal Server Error,..). No instances available for XXX
  7. apache php 脚本,PHP脚本不在Apache服务器上执行
  8. c标签判断true false jsp_北京尚学堂卓越班252天[第042天]——Jsp
  9. hdu 1495非常可乐 BFS
  10. Apache启动失败
  11. 局域网摄像头扫描_使用Pyhton带你分析酒店里的针孔摄像头
  12. 30天React Native从零到IOS/Android双平台发布总结
  13. excel数据库_EXCEL数据库函数dcount、dcounta
  14. 高数——八种求极限方法总结
  15. 文本去重:I-Match算法
  16. MarkDown - Latex符号(箭头)的整理
  17. PSNR、SSIM、BD-rate和BD-PSNR
  18. 高中必备学习软件_学霸必备app有哪些高中生必备app排行
  19. 【STM32】数码管显示按键控制舵机转动的角度(二)
  20. 大数据工程师需要哪些基础知识?

热门文章

  1. 游戏开发九宫格战斗架构解析具体解释
  2. 技术解析:一文看懂 Anolis OS 国密生态|龙蜥专场
  3. 【Python绘图】pyecharts绘制南丁格尔玫瑰图
  4. 计算机会议论文EI检索,ei检索会议论文算期刊_ei论文检索_ei会议论文算核心吗...
  5. html中treegrid不显示根节点,easyUI TreeGrid的加载问题
  6. 什么是敏捷管理 常用的敏捷Scrum会议有哪些
  7. 【操作篇】Excel中如何批量删除批注
  8. 关于0x80070091 目录不是空的
  9. web前端利用leaflet生成粒子风场,类似windy
  10. 科学革命——承认自己无知的革命