Android任意窗口添加固定/浮动窗体:音乐播放器底部/顶部常驻播放窗体
2018-01-04 00:00
323 查看
Android任意窗口添加固定/浮动窗体:音乐播放器底部/顶部常驻播放窗体
在Android窗口添加一个固定或者浮动位置的窗体,这在一些常见的Android APP中经常遇到,比如音乐播放器类APP,这些APP通常在窗口主要位置放置歌曲列表之类,但会在底部或者顶部放置一个“条形”壮的微型播放器常驻窗口。可以通过写布局文件,比如在一个父FrameLayout里面在套一个小的FrameLayout,此FrameLayout将作为微型播放器的容器;也可以写一个相对布局,将承载微型播放器的子布局搁置在最底部。等等实现手段。
但是上述的手段是通过写xml布局文件,本文实现的是,不写xml布局文件,通过动态代码生成一个悬靠在底部的装载这种开发需求的代码。
测试的MainActivity.java需要的布局文件:
没有任何内容,一个空白的布局而已。随后将在这个布局上Java动态代码添加一个FrameLayout。
MainActivity.java:
如果需要为Java动态代码生成的FrameLayout设置一个id,则需要在ids.xml定义:
代码运行结果:
Android任意窗口添加固定/浮动窗体:音乐播放器底部/顶部常驻播放窗体
在Android窗口添加一个固定或者浮动位置的窗体,这在一些常见的Android APP中经常遇到,比如音乐播放器类APP,这些APP通常在窗口主要位置放置歌曲列表之类,但会在底部或者顶部放置一个“条形”壮的微型播放器常驻窗口。可以通过写布局文件,比如在一个父FrameLayout里面在套一个小的FrameLayout,此FrameLayout将作为微型播放器的容器;也可以写一个相对布局,将承载微型播放器的子布局搁置在最底部。等等实现手段。
但是上述的手段是通过写xml布局文件,本文实现的是,不写xml布局文件,通过动态代码生成一个悬靠在底部的装载这种开发需求的代码。
测试的MainActivity.java需要的布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="zhangphil.add.MainActivity" > </RelativeLayout>
没有任何内容,一个空白的布局而已。随后将在这个布局上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定义:
<?xml version="1.0" encoding="utf-8"?> <resources> <item name="myview" type="id"/> </resources>
代码运行结果:
相关文章推荐
- Android任意窗口添加固定/浮动窗体:音乐播放器底部/顶部常驻播放窗体
- Android界面,固定顶部、底部导航。中间可滑动
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失的动画实现【转】
- Android中使用WindowManager在界面布局上添加浮动窗口
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失,并解决activity跳转的时候出现短暂的黑屏
- Android 动画,从顶部进入,底部往上退出,类似于卷窗口的效果
- 手机网站的顶部或者底部固定浮动代码
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失,并解决activity跳转的时候出现短暂的黑屏
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失的动画实现
- android ScrollView 固定顶部、底部 滑动中间部分
- Android 顶部下拉刷新添加数据&& 底部上拉刷新添加数据 ScrollListener
- Android 列表播放视频和浮动播放窗口
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失的动画实现
- android实现顶部底部固定 中间可滑动
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失的动画实现
- Android 获取系统顶部状态栏高度和底部导航栏的高度
- Android ScrollView监听值判断在底部还是顶部
- Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析
- 【Android】简易音乐播放器(介绍使用Service和Broadcast播放音乐文件)
- android添加通知到顶部任务栏