4 回答
TA贡献1852条经验 获得超7个赞
目前找到的方法只能调用内建的动画效果
params = new WindowManager.LayoutParams();
params.windowAnimations = android.R.style.Animation_Translucent;
若改成R.style.custon_anim的话则是怎麼样都没有动画
可用的方法是直接搭Handler、Runnable来updateViewLayout
但是在改物件大小时会看起来不顺畅
仅管已经把呼叫时间改为1ms,一样没辨法每毫秒呼叫一次更新
现在是先用Runnable的方法,只做了淡出效果、物件直接放大到固定值
代码大致上如下
private void createFloatView(){
Log.d("HuybnTag","S.createFloatView");
btn_exif = new Button(getApplicationContext());
btn_exif.setBackgroundResource(R.drawable.exif);
wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
exif = new WindowManager.LayoutParams();
exif.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
exif.format = PixelFormat.RGBA_8888;
exif.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
exif.height = 124;
exif.width = 124;
exif.gravity = Gravity.CENTER;
exif.windowAnimations = android.R.style.Animation_Translucent;
.......
要离开时运行这个
fadeOut(btn_exif,exif);
//下面这段改自网络上的代码
public void fadeOut(final View notificationView, final LayoutParams params){
animTime=300;
exif.width=310;
exif.height=310;
final long startTime = System.currentTimeMillis();
Handler handler = new Handler();
handler.postDelayed(new Runnable(){
public void run(){
fadeOutHandler(notificationView, params, startTime);
}
}, 25);
}
public void fadeOutHandler(final View notificationView, final LayoutParams params, final long startTime){
long timeNow = System.currentTimeMillis();
float alpha = (1- ((float)(timeNow - startTime)/animTime) ) * 1.0f;
if(alpha<=0) alpha = 0;
params.alpha = alpha;
Log.d("HuybnTag","alpha= "+alpha);
wm.updateViewLayout(notificationView, params);
if (timeNow-startTime<animTime){
Handler handler = new Handler();
handler.postDelayed(new Runnable(){
public void run(){
fadeOutHandler(notificationView, params, startTime);
}
}, 25);
}
TA贡献1856条经验 获得超11个赞
正是丰富的运算符和表达式使C语言功能十分完善。这也是C语言的主要特点之一。C语言的运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。这种结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。
TA贡献1795条经验 获得超7个赞
css3样式中的transform、animation都可以实现动画的相关效果。例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>animation动画效果</title>
<style>
div
{
width:100px;
height:100px;
background:red;
animation:myfirst 5s;
-webkit-animation:myfirst 5s; /* Safari and Chrome */
}
@keyframes myfirst
{
from {background:red;}
to {background:yellow;}
}
@-webkit-keyframes myfirst /* Safari and Chrome */
{
from {background:red;}
to {background:yellow;}
}
</style>
</head>
<body>
<p><b>注意:</b> 该实例在 Internet Explorer 9 及更早 IE 版本是无效的。</p>
<div></div>
</body>
</html>
- 4 回答
- 0 关注
- 1910 浏览
添加回答
举报