博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android任意窗口添加固定/浮动窗体:音乐播放器底部/顶部常驻播放窗体
阅读量:7222 次
发布时间:2019-06-29

本文共 1393 字,大约阅读时间需要 4 分钟。



Android任意窗口添加固定/浮动窗体:音乐播放器底部/顶部常驻播放窗体

在Android窗口添加一个固定或者浮动位置的窗体,这在一些常见的Android APP中经常遇到,比如音乐播放器类APP,这些APP通常在窗口主要位置放置歌曲列表之类,但会在底部或者顶部放置一个“条形”壮的微型播放器常驻窗口。可以通过写布局文件,比如在一个父FrameLayout里面在套一个小的FrameLayout,此FrameLayout将作为微型播放器的容器;也可以写一个相对布局,将承载微型播放器的子布局搁置在最底部。等等实现手段。

但是上述的手段是通过写xml布局文件,本文实现的是,不写xml布局文件,通过动态代码生成一个悬靠在底部的装载这种开发需求的代码。
测试的MainActivity.java需要的布局文件:

没有任何内容,一个空白的布局而已。随后将在这个布局上Java动态代码添加一个FrameLayout。

MainActivity.java:

package zhangphil.add;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.Gravity;import android.view.ViewGroup;import android.widget.FrameLayout;public class MainActivity extends Activity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		FrameLayout layout = new FrameLayout(this);		// 作为演示,随意设置一个有区别的颜色。		layout.setBackgroundColor(Color.RED);		// 可以设置一个id,也可以不设置。设置的话需要在ids.xml定义id。		layout.setId(R.id.myview);		// 高度为200pix		FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,				200);		// 在窗口的底部		layoutParams.gravity = Gravity.BOTTOM;		// 整个窗口		ViewGroup viewParent = (ViewGroup) getWindow().getDecorView();		// 将layout添加到窗口上层		viewParent.addView(layout, layoutParams);	}}

如果需要为Java动态代码生成的FrameLayout设置一个id,则需要在ids.xml定义:

代码运行结果:

你可能感兴趣的文章
Exchange2010安装配置篇三 证书服务
查看>>
JavaScript数据结构-栈
查看>>
当信息安全遇上应用交付
查看>>
“中国经济脱轨论”是小人之言
查看>>
Oracle RAC日常基本维护命令
查看>>
QT Sqlite ARM 编写程序
查看>>
Oralce7和Oralce8里大对象的比较
查看>>
2011年存储行业重点厂商盘点---初志
查看>>
Activiti初学者教程
查看>>
SVN 1053: 服务没有及时响应启动或控制请求
查看>>
==与equal的区别 这次我理解了,你呢?
查看>>
利用searchview搜索应用程序
查看>>
真正的换位思考:我做测试人员的一天
查看>>
CIH病毒破坏及其修复工具与方法
查看>>
Erlang学习:尾递归
查看>>
MySQL 主从双向复制实验
查看>>
javawb学习01
查看>>
InnoDB与Myisam的六大区别
查看>>
我的友情链接
查看>>
构建Maven项目时常见错误
查看>>