当前位置: 首页 > news >正文

沈阳网站建设024w长春免费网站制作

沈阳网站建设024w,长春免费网站制作,推广下载app,周口建设公司网站最近需求一个问题,想要在dialog消失时增加动画,之前如上一个文章中遇到的,但是最后改了实现方式,要求在特定的地方缩放,原来的dialog高度是wrap_content的,这样是无法实现的,因此首先需要将dial…

最近需求一个问题,想要在dialog消失时增加动画,之前如上一个文章中遇到的,但是最后改了实现方式,要求在特定的地方缩放,原来的dialog高度是wrap_content的,这样是无法实现的,因此首先需要将dialog的layout文件从wrap_content,改成match_parent,同时设置最外层布局背景透明。在dialog.show()之后,重新设置窗口属性

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:clipChildren="false"android:layoutDirection="ltr">此处省略内部内容</RelativeLayout>
        dialog?.show()dialog?.apply {window?.setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT)}

紧接着我们就可以使用动画了,尤其是平移动画,原来dialog是wrap_content的时候,如何平移超过view,就会消失。当dialog变成match_parent后,就可以正常使用平移动画了。

思路:根据位置计算平移的距离进行平移,同时缩放

    private fun setAnim(dialog: Dialog) {dialog.apply {val animView = findViewById<View>(R.id.limited_layout)val height = animView?.height//此处是在计算相应的距离等内容val retainHeight = (screenHeight(context) - height!!) / 2 - DensityUtil.dp2px(ApplicationHelper.getInstance().context,84f) - getStatusBarHeight(context)val topHeight = DensityUtil.dp2px(ApplicationHelper.getInstance().context,80f)val transHeight = retainHeight - topHeight - DensityUtil.dp2px(ApplicationHelper.getInstance().context,28f).toFloat()val scaleAnimation = if (retainHeight < topHeight) {ScaleAnimation(1f, 0f,1f, 0f,Animation.RELATIVE_TO_SELF, 1f,Animation.RELATIVE_TO_SELF,((topHeight + DensityUtil.dp2px(ApplicationHelper.getInstance().context,28f) - retainHeight) / height.toFloat()))} else {ScaleAnimation(1f, 0f,1f, 0f,Animation.RELATIVE_TO_SELF, 1f,Animation.RELATIVE_TO_SELF, 0f)}val translationAnimator = if (retainHeight > topHeight) {TranslateAnimation(0f,0f,0f,-transHeight)} else {null}translationAnimator?.let {val animationSet = AnimationSet(true)scaleAnimation.duration = 300animationSet.addAnimation(scaleAnimation)val alphaAnimation = AlphaAnimation(1f, 0f)alphaAnimation.duration = 300it.duration = 300animationSet.addAnimation(it)animationSet.addAnimation(alphaAnimation)animView.startAnimation(animationSet)animationSet.setAnimationListener(object : Animation.AnimationListener {override fun onAnimationStart(animation: Animation?) {// 动画开始时的操作}override fun onAnimationEnd(animation: Animation?) {mLimitedDialog?.let { dismiss() }}override fun onAnimationRepeat(animation: Animation?) {// 动画重复时的操作}})} ?: run {val animationSet = AnimationSet(true)scaleAnimation.duration = 300animationSet.addAnimation(scaleAnimation)val alphaAnimation = AlphaAnimation(1f, 0f)alphaAnimation.duration = 300animationSet.addAnimation(alphaAnimation)animView.startAnimation(animationSet)animationSet.setAnimationListener(object : Animation.AnimationListener {override fun onAnimationStart(animation: Animation?) {// 动画开始时的操作}override fun onAnimationEnd(animation: Animation?) {mLimitedDialog?.let { dismiss() }}override fun onAnimationRepeat(animation: Animation?) {}})}}}

http://www.yayakq.cn/news/289813/

相关文章:

  • 网站建设设计平台网页设计板式要求
  • 辅助网站建设wordpress 手机端分开
  • 系统开发必须遵守的原则有哪些seo 网站推广
  • 网站建设hyioi域名注册万网
  • 腾网站建设莱芜信息港金点子招聘
  • 代码家的干货网站网站后天添加文章不显示
  • 移动端网站建设的方案高唐网页定制
  • 技术网站建设高端网站设计技术分析
  • 长治哪里能找到做网站的技术员网站单页别人是怎么做的
  • 网站首页site不到 a5如何做营销推广
  • 电商网站建设规划上海网络推广工资
  • 做二维码签到的网站抚顺市 网站建设
  • wordpress三站合一柳州市安全教育平台
  • 互联网与网站有哪些广州教育网站设计公司
  • 滨海做网站价格电商排名前十名品牌
  • 城乡与住房建设部网站免费宝塔主机
  • 做网站如何文字链接文字定制研发服务
  • 电商网站开发周期网站建设开发收费
  • wordpress网站换主机展厅装修设计公司有
  • 揭阳网站建设网站邢台公司做网站
  • 网站开发制做如何建立自己网站平台
  • wordpress建站技巧手机怎么安装 wordpress
  • 网站建设满意度问卷调查如何说服企业做网站
  • 淘宝上买衣服的网站运营方案
  • 富锦网站制作看片
  • 婚纱网站html源码网站seo顾问
  • 买域名和服务器做自己的网站中国建设银行个人网上银行登录官网
  • 大连网站设计九必选仟亿科技做分析图地图网站
  • wordpress最强的教育网站网站建设优秀公司
  • 做网站招商需要具备什么网站管理规划方案