android5通过什么方法实现按钮的浮动

2025-04-05 01:07:51
推荐回答(1个)
回答(1):

一、在MainActivity中声明:

private WindowManager mWindowManager = null;
private WindowManager.LayoutParams wmParams = null;
// 用于显示右下角浮动图标
private ImageView img_Float;

二、在onCreater方法中调用初始化悬浮图片的方法initFloatImage(),该函数源码如下:

private void initFloatImage() {
// 获取WindowManager
mWindowManager = (WindowManager) getApplicationContext().getSystemService("window");
// 设置LayoutParams(全局变量)相关参数
wmParams = new WindowManager.LayoutParams();

wmParams.type = LayoutParams.TYPE_PHONE; // 设置window type
wmParams.format = PixelFormat.RGBA_8888; // 设置图片格式,效果为背景透明
// 设置Window flag
wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE;

// 以屏幕左上角为原点,设置x、y初始值
wmParams.x = 400;
wmParams.y = 400;
System.out.println("*************"+wmParams.y);
// 设置悬浮窗口长宽数据
wmParams.width = 80;
wmParams.height = 80;
}

三、然后依然在onCreate方法中接着调用createFloatView()方法创建悬浮图片:

/**
* 创建悬浮图片按钮
*/
private void createFloatView() {
img_Float = new ImageView(this);
img_Float.setImageResource(R.drawable.ic_launcher);
img_Float.setAlpha(80);
img_Float.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// 点击悬浮图片的事件
}
});
// 调整悬浮窗口
wmParams.gravity = Gravity.LEFT | Gravity.CENTER_VERTICAL;
// 显示myFloatView图像
mWindowManager.addView(img_Float, wmParams);
}

四、在不需要显示时,调用 mWindowManager.removeView(img_Float); 销毁图片。