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

网站设计的公司企业邮箱做网站关键词要懂代码么

网站设计的公司企业邮箱,做网站关键词要懂代码么,网站备案号信息修改,全球仅剩1个国家未发现新冠在Android13中,有这么一个bug,写一个可以拖到的悬浮窗,这个悬浮窗里有TextView,在拖到某个位置后,再调用TextView的setText方法,会发现出现了一个窗口动画,悬浮窗跳到了起始位置,从开…

在Android13中,有这么一个bug,写一个可以拖到的悬浮窗,这个悬浮窗里有TextView,在拖到某个位置后,再调用TextView的setText方法,会发现出现了一个窗口动画,悬浮窗跳到了起始位置,从开始的位置又滑动到当前位置,看起来就是出现了一个跳动。

试验例子

package com.example.testfloatview;import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.os.Build;
import android.os.Handler;
import android.os.IBinder;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;public class FloatWindowService extends Service {private WindowManager windowManager;private View floatView;private TextView textView;// 记录手指按下时的初始位置private int initialX, initialY;// 记录悬浮窗的初始位置private int initialWindowX, initialWindowY;@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {super.onCreate();// 初始化 WindowManagerwindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);// 加载布局文件LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);floatView = inflater.inflate(R.layout.float_window_layout, null);// 获取TextView控件textView = floatView.findViewById(R.id.text_view);// 设置初始文本textView.setText("hello, this is a test");// 创建 WindowManager.LayoutParamsWindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.WRAP_CONTENT,Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ?WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY :WindowManager.LayoutParams.TYPE_PHONE,WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,PixelFormat.TRANSLUCENT);// 设置悬浮窗位置params.gravity = Gravity.TOP | Gravity.START;params.x = 0;params.y = 100;params.windowAnimations = 0;// 添加悬浮窗到窗口管理器windowManager.addView(floatView, params);// 设置触摸事件监听器floatView.setOnTouchListener(new View.OnTouchListener() {private int initialTouchX, initialTouchY;@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:// 记录初始位置initialX = params.x;initialY = params.y;initialTouchX = (int) event.getRawX();initialTouchY = (int) event.getRawY();break;case MotionEvent.ACTION_MOVE:// 计算新的位置params.x = initialX + (int) (event.getRawX() - initialTouchX);params.y = initialY + (int) (event.getRawY() - initialTouchY);// 更新悬浮窗位置windowManager.updateViewLayout(floatView, params);break;case MotionEvent.ACTION_UP:floatView.invalidate();textView.setText("hello");//       textView.setText("hello, this is a test");break;default:break;}return true; // 消费触摸事件}});// 使用Handler延迟5秒后更新文本new Handler().postDelayed(() -> {//     textView.setText("hello world");//     textView.setText("hello, this is a tttt");textView.setText("hello");}, 5000);}@Overridepublic void onDestroy() {super.onDestroy();// 移除悬浮窗if (floatView != null && windowManager != null) {windowManager.removeView(floatView);}}
}

package com.example.testfloatview;import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// 检查是否已经有悬浮窗权限if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {if (!Settings.canDrawOverlays(MainActivity.this)) {// 如果没有权限,跳转到系统设置页面申请权限Toast.makeText(MainActivity.this, "需要悬浮窗权限!", Toast.LENGTH_SHORT).show();Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,Uri.parse("package:" + getPackageName()));startActivityForResult(intent, 1);} else {// 已经有权限,启动悬浮窗服务startService(new Intent(MainActivity.this, FloatWindowService.class));finish(); // 关闭主Activity}} else {// 启动悬浮窗服务(低版本设备不需要权限)startService(new Intent(MainActivity.this, FloatWindowService.class));finish(); // 关闭主Activity}}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 1) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {if (Settings.canDrawOverlays(this)) {// 用户授予了权限,启动悬浮窗服务startService(new Intent(this, FloatWindowService.class));finish(); // 关闭主Activity} else {Toast.makeText(this, "未获得悬浮窗权限!", Toast.LENGTH_SHORT).show();}}}}
}

在开发者选项里,关闭掉 窗口动画缩放,就没有这个跳动问题了,所以这应该是窗口动画的bug,在调用setText的过程中,view的测量,布局中触发了窗口动画,并且使用了最初的坐标,大致是这样的思路。


文章转载自:

http://XdvE6c2u.zfhwm.cn
http://JvQWrLJk.zfhwm.cn
http://VILnKZsD.zfhwm.cn
http://wRAuO59M.zfhwm.cn
http://HTenVb9u.zfhwm.cn
http://zBVqeI1Z.zfhwm.cn
http://U116NoxV.zfhwm.cn
http://148QYFj9.zfhwm.cn
http://blQZTXfK.zfhwm.cn
http://CLG16flP.zfhwm.cn
http://QjkrHgye.zfhwm.cn
http://9uU54HM6.zfhwm.cn
http://wI81QXmg.zfhwm.cn
http://T2IaGSVI.zfhwm.cn
http://xOlhWqVm.zfhwm.cn
http://cKH9Okre.zfhwm.cn
http://AdUOlBkn.zfhwm.cn
http://K4oOPlvN.zfhwm.cn
http://pjSKtPLa.zfhwm.cn
http://UKbv22uY.zfhwm.cn
http://krmKtUj5.zfhwm.cn
http://W8MBRKtx.zfhwm.cn
http://EoHjvkBA.zfhwm.cn
http://KgHT0YgZ.zfhwm.cn
http://EKqe6WYw.zfhwm.cn
http://pzcBk0op.zfhwm.cn
http://JBkCUuqy.zfhwm.cn
http://PhJAeVaO.zfhwm.cn
http://DvmGdhd5.zfhwm.cn
http://ZrqrCIKx.zfhwm.cn
http://www.dtcms.com/wzjs/717117.html

相关文章:

  • 广州网站推广解决方案网站开发如何搭建框架
  • 手机在网上怎么创建自己的网站怎么建立自己的企业网站
  • 专业网站建设公司wordpress文章关键字替换
  • 网站建设多少钱一年佛山网站建设企业
  • 多城市分站站群cms有人有片视频吗免费的下载
  • 湖南 中小企业 网站建设如何搭建网站赚点击
  • 广州购网站建设网站开发调试iis
  • 公司网站手机版头条搜索
  • php网站开发和js室内装修软件
  • 洪梅镇仿做网站网站网页设计心得
  • 网站建设公司权威机构做平面素材比较好的网站
  • 建设企业网站进去无法显示wordpress重复网站
  • 保定企业建站系统模板网站提示危险网站
  • 在线教育类网站模板怎么做网站
  • flash网站项目背景wordpress拖拽式
  • 网站备案是什么wordpress食品模板下载
  • 美橙网站建设学习教程微网站开发哪家好
  • 南京移动网站建设哪里强重庆沙坪坝邮编
  • 网站建设能给客户带来什么手机报价大全2021中关村
  • 网站所有分类中 点击箭头不出现下拉菜单做网站官网需多少钱
  • 企业网站建设经验分享我是新手如何做电商
  • 商城网站建设最好的公司制作俄语网站
  • 开什么网站暴利wordpress慢 数据库
  • 苏州网站怎么做帝国做的网站删除域名后缀
  • 民权做网站哪家好美篇在哪个网站做的
  • 重庆博建设计院公司是网站更改wordpress所有的链接
  • google网站建设合肥设计公司排名
  • 网站建设背景怎么写找外包做网站
  • 杭州建站程序杭州企业建站程序
  • 公司网站建设 入账装饰设计有限公司