- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近我正在制作一款需要连续动画的游戏。
我会进一步解释。
我有 View ,比如说屏幕顶部,我需要将其从屏幕顶部到屏幕底部设置动画,然后当 View 打开时它会返回到原始位置(屏幕顶部)在底部。
现在有 6 个 View 执行完全相同的操作。
从屏幕顶部到屏幕底部以及当它们位于底部时返回的动画。
但是当他们已经移动时,应用程序会出现非常烦人的卡顿和滞后。
代码如下:
@Override
public void onWindowFocusChanged(boolean focus) {
new LongOperation().execute();
}
private class LongOperation extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
play.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (!failedM) {
running = true;
soundPool.play(click_sound, 1, 1, 0, 0, 1);
play.setVisibility(View.INVISIBLE);
p1.setVisibility(View.VISIBLE);
p2.setVisibility(View.VISIBLE);
p3.setVisibility(View.VISIBLE);
c1.setVisibility(View.VISIBLE);
c2.setVisibility(View.VISIBLE);
c3.setVisibility(View.VISIBLE);
final Handler mHandler = new Handler();
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
try {
Thread.sleep(60);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mHandler.post(new Runnable() {
@Override
public void run() {
p1.getHitRect(rect1);
p2.getHitRect(rect2);
p3.getHitRect(rect3);
c1.getHitRect(rect4);
c2.getHitRect(rect5);
c3.getHitRect(rect6);
if (Rect.intersects(rect, rect1)
{
.....
}
if (Rect.intersects(rect, rect2)
) {
.....
}
if (Rect.intersects(rect, rect3)
) {
.....
}
if (Rect.intersects(rect, rect4)
) {
.....
}
if (Rect.intersects(rect, rect5)
) {
.....
}
if (Rect.intersects(rect, rect6)
) {
.....
}
downy1 += 1;
downy2 += 1;
downy3 += 1;
downy4 += 1;
downy5 += 1;
downy6 += 1;
params1.topMargin = params1.topMargin
+ downy1;
params2.topMargin = params2.topMargin
+ downy2;
params3.topMargin = params3.topMargin
+ downy3;
params4.topMargin = params4.topMargin
+ downy4;
params5.topMargin = params5.topMargin
+ downy5;
params6.topMargin = params6.topMargin
+ downy6;
p1.setLayoutParams(params1);
p2.setLayoutParams(params2);
p3.setLayoutParams(params3);
c1.setLayoutParams(params4);
c2.setLayoutParams(params5);
c3.setLayoutParams(params6);
if (p1.getTop() > height) {
downy1 = 0;
params1.leftMargin = newX;
params1.topMargin = orig1y;
p1.setLayoutParams(params1);
}
if (p2.getTop() > height) {
downy2 = 0;
params2.leftMargin = newX;
params2.topMargin = orig2y;
p2.setLayoutParams(params2);
}
if (p3.getTop() > height) {
downy3 = 0;
params3.leftMargin = newX;
params3.topMargin = orig3y;
p3.setLayoutParams(params3);
}
if (c1.getTop() > height
&& !failedM) {
downy4 = 0;
params4.leftMargin = newX;
params4.topMargin = orig4y;
c1.setLayoutParams(params4);
}
if (c2.getTop() > height
&& !failedM) {
downy5 = 0;
params5.leftMargin = newX;
params5.topMargin = orig5y;
c2.setLayoutParams(params5);
}
if (c3.getTop() > height
&& !failedM) {
downy6 = 0;
params6.leftMargin = newX;
params6.topMargin = orig6y;
c3.setLayoutParams(params6);
}
}
});
}
}
}).start();
}
});
return "Executed";
}
@Override
protected void onPostExecute(String result) {
}
@Override
protected void onPreExecute() {
}
@Override
protected void onProgressUpdate(Void... values) {
}
}
正如你所看到的(如果 view.getTop() > height)
这意味着当 View Y 大于高度时,即 View 从顶部移动到底部时,它将返回到顶部。
我希望我说清楚了
提前致谢。
最佳答案
您应该使用动画框架。 (view.animate()...
)。设置布局参数需要重新计算布局,这可能不是一个便宜的操作(取决于您的布局)。
您可以使用动画框架或设置 View 的translateX/Y
等属性,以避免重新计算布局。
关于java - 安卓java |更新 View 布局参数时出现卡顿和滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30969105/
我在 Java Swing 中移动 block 时遇到卡顿问题。 下面的代码将显示该问题。运行时,我希望盒子移动平稳,没有任何卡顿。 Swing中有没有办法实现这一点?或者我应该继续使用 JavaFX
在我的应用程序中,我在主要 Activity 中实现了滑动菜单抽屉。菜单的设计是自定义的,单击菜单中的列表项会打开一个 fragment 。 private class SlideMenuClickL
我尝试制作ImageView 的扩展布局动画和平移 动画,但我同时启动它们时它们看起来有点滞后。我在真实设备 Moto X(2013) 上对其进行了测试。不确定更强大的设备,因为默认情况下我所有的模拟
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
首先,让我澄清一些事情: 我的显示器频率为 60 赫兹 我将我的 FPS 限制在 60,它似乎工作正常 我激活了双缓冲标志 我自己制作了一个后台缓冲区,并确保绘制到它,然后再绘制到屏幕 这个问题在全屏
我在以下测试页面上使用 Flexslider(旧版本 1.0,支持 jquery 1.4.8):http://www.showstyle.lu/service/startv2/ 如您所见, slide
我有一项服务可以在 AysncTask 的 doInBackground() 方法中下载一个大文件: data = new byte[8192]; output = new FileOutputStr
我有一个动画师,infinite_rotation,定义为: 当我不再需要它的时间(时间不确定)到来时,我调用 infinite_animator.cancel()。然后在其布局容器上播
向元素添加过渡并更改宽度和/或高度以及 -webkit-transform:translate3d 时,过渡动画会断断续续。它似乎首先为宽度/高度变化设置动画,并对其进行部分平移,然后捕捉到最终平移位
当 AVSpeechSynthesizer 正在说一个句子时,UI 发生变化(例如 ViewController 被推送,UIButton的标题已更改,...),AVSpeechSynthesizer
在 Firefox 11 中,我在使用 HTML5 的 Canvas 和翻译的一些基本动画中遇到偶尔的抖动/犹豫/卡顿。 请看下面的例子... http://jsfiddle.net/ACRdx/ 上
问题 我正在尝试让 Canvas 上的图像从左向右平滑移动。它在 Chrome/Safari 上还不错(仍然有点卡顿),但在多台机器上的 Firefox 中有明显的卡顿(在 Windows 和 Mac
我正在使用 Ariel Flesler's ScrollTo script在 this page .我在页面底部有两个链接,可以滚动到页面顶部(其中一个还可以打开联系表格)。我注意到在滚动开始时页面顶
我一直在尝试创建一个充满卡片 View 的回收站 View 。目前,我正在使用来自 this tutorial 的 Recycler View并加载 14 张不同的图像。专业品质的图像大小范围从 13
我创建了一个带有自定义单元格的 UItableview。这些单元格有两个 UILabel 和一个在后台线程上调用图像的 ImageView 。这些单元首先加载一些占位符数据,以防 API 调用时间较长
用例 我有 68 个钢琴样本,每个样本大约。 174 kB,Ogg 数据,Vorbis 音频,立体声,s16,44100 Hz,352 kb/s,4 秒。 我需要同时演奏它们的不同组合(音乐术语:和弦
喂, https://jsfiddle.net/jbwq6y87/7/ #box { width: 500px; height: 500px; transition: 0.5s; ov
这是一个演示: http://nushuttles.com/chords/player.html 顶部的方 block 是用 Flash 渲染的,下面的方 block 是用 Javascript 制作
我有一个 RecyclerView 这是一个垂直滚动的项目列表。每个列表项在 Lite Mode 中包含一个 Google Maps V2 MapView .我正在利用这个返回位图而不是完整 map
在我的应用程序中,一旦用户进入它,我在仪表板上有太多动画只发生一次 - 即当用户第一次进入应用程序时 - 我在 viewDidAppear 中以这种方式执行动画,调用 upperViewAnimati
我是一名优秀的程序员,十分优秀!