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 {@Overrideprotected 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);// 高度为200pixFrameLayout.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任意窗口添加固定/浮动窗体:音乐播放器底部/顶部常驻播放窗体_第1张图片



代码运行结果:

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

更多相关文章

  1. android 百分比布局percentFrameLayout,percentRelativeLayout的
  2. 谷歌借Android布局中国3G
  3. Android 从源码看懂窗口绘制流程
  4. Android入门进阶教程(17)-WindowManager 窗口管理介绍
  5. Android的布局复用与优化
  6. [Android]MirrorOp-Sender传屏端,完全破解版,无5分钟时间限制,无注
  7. android Listview的getView和convertview原理解析以及使用不同的
  8. 实现一个用于显示当前时间的Google Android 窗口小部件(AppWidget

随机推荐

  1. android gravity and LinerarLayout for
  2. android vim编辑器的移植
  3. Android 使用Vitamio打造自己的万能播放
  4. Android SDK r20.x更新时,没有Android API
  5. android webview拦截超链接
  6. Android历史
  7. Android 2011年开发风向标
  8. android shape 代码实现按钮背景
  9. Pyqtdeploy Android PyQtForAndroid 编译
  10. Android基础笔记(五)-网络编程