如何在Android中实现悬浮Activity

 我来答
厦门侯
高粉答主

2016-12-23 · 信息管理员
厦门侯
采纳数:30618 获赞数:90296

向TA提问 私信TA
展开全部
最显而易见的方式就是改变Window的尺寸,所以这里需要以下这段代码:

public void onAttachedToWindow() {
super.onAttachedToWindow();

if (getResources().getBoolean(R.bool.is_tablet) && mOpenAsSmallWindow) {
final View view = getWindow().getDecorView();
final WindowManager.LayoutParams lp = (WindowManager.LayoutParams) view.getLayoutParams();

lp.gravity = Gravity.CENTER;

lp.width = mActivityWindowWidth;
lp.height = mActivityWindowHeight;
getWindowManager().updateViewLayout(view, lp);
}
}

添加透明功能

在实现了Activity的尺寸和大小都改变后,现在就要让它透明了。可以给这个平板上的Activity主题添加这个属性:

<item name="android:windowIsTranslucent">true</item>
这个属性值可以使Activity背景透明。
育知同创教育
2016-12-23 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
参考下面方法:
WindowManager wm;
WindowManager.LayoutParams wmlp;
LinearLayout linear;
EditText t;

wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wmlp = new WindowManager.LayoutParams();
wmlp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
wmlp.gravity = Gravity.TOP|Gravity.LEFT;
wmlp.format = PixelFormat.RGBA_8888;
wmlp.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.LayoutParams.FLAG_FULLSCREEN|WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
wmlp.x = 0;//悬浮窗左上角的x坐标
wmlp.y = 0;//悬浮窗左上角的坐标
wmlp.width = 50;//宽
wmlp.height = 30;//高

linear = new LinearLayout(getApplicationContext());//悬浮窗显示的布局
linear.setGravity(Gravity.BOTTOM|Gravity.LEFT);
//组件
t = new TextView(getApplicationContext()); //文本
t.setTextColor(Color.RED);//文本颜色
t.setText("哈哈");
linear.addView(t);//将textview添加进布局
wm.addView(linear,wmlp); // 窗口管理器添加这个部件
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式