gpt4 book ai didi

java - 在 WindowManager 中为 ImageView 设置动画 - Android

转载 作者:行者123 更新时间:2023-11-29 07:03:50 27 4
gpt4 key购买 nike

我想在 WindowManager 中为 ImageView 设置动画。但它不起作用。请在下面找到我的代码。在这里你可以看到我得到了一个窗口管理器系统服务并添加了一个 imageview。现在我在窗口管理器中添加 ImageView 后尝试旋转。

它在 Activity 中运行良好。

 

public class FloatingImageAnimationService extends Service {

private WindowManager windowManager;
private static ImageView chatHead;

@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

chatHead = new ImageView(this);

chatHead.setImageResource(R.drawable.image_small);


final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);


params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;

windowManager.addView(chatHead, params);


RotateAnimation ra = new RotateAnimation(
0,
-80,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF,
0.5f);

// how long the animation will take place
ra.setDuration(210);

// set the animation after the end of the reservation status
ra.setFillAfter(true);
// Start the animation
chatHead.startAnimation(ra);
}
}

请告诉我需要执行哪些额外步骤才能使其正常工作。

谢谢你,

比卡什

最佳答案

您可以通过添加这样的布局来制作动画。

//..at your onCreate() method
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

chatHead = new ImageView(this);
chatHead.setImageResource(R.drawable.image_small);

// Create an additional layout for your animation.
LinearLayout layout = new LinearLayout(this);
layout.addView(chatHead); // And attach your objects

final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);


params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;

// Add your layout to the windowManager instead of your object.
windowManager.addView(layout, params);

//.. Add animations what you want.

当我遇到完全相同的情况时,它对我有用。

关于java - 在 WindowManager 中为 ImageView 设置动画 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22145057/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com