Android通过自定义Activity实现悬浮的Dialog详解

 更新时间:2017年05月26日 14:10:34   作者:ROOM先生  
这篇文章主要给大家介绍了关于Android通过自定义Activity实现悬浮的Dialog的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考学习价值,感兴趣的朋友们下面来一起看看吧。

前言

其实实现悬浮的自定义窗体有很多方法,自定义Dialog,自定义layout 均可以实现。自定义activity也是可以的,今天我就介绍一下activity的实现方法。下面来看看详细的介绍:


效果图

如图可以看出,当前的窗体,第一眼其实和dialog没有什么区别,但是它是自定义activity实现。如何实现的呢?

代码如下:

新建activity

@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 this.requestWindowFeature(Window.FEATURE_NO_TITLE);
 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  WindowManager.LayoutParams.FLAG_FULLSCREEN);
 setContentView(R.layout.dialog_show_display_mode);
 WindowManager windowManager = getWindowManager();
 Display display = windowManager.getDefaultDisplay();
 WindowManager.LayoutParams params = getWindow().getAttributes();
// params.height = (int) (display.getHeight() * 0.3);
// params.width = (int) (display.getWidth() * 0.8);
 params.alpha = 1.0f;
 getWindow().setAttributes(params);
 getWindow().setGravity(Gravity.CENTER);
}

layout样式布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="@color/white"
 android:orientation="vertical">

 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="45dp">

 <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center"
  android:layout_marginLeft="20dp"
  android:text="语音球开启方式"
  android:textColor="@color/bg_black"
  android:textSize="20dp" />
 </LinearLayout>

 <View
 android:layout_width="match_parent"
 android:layout_height="1dp"
 android:background="@color/forget_password" />

 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical">

 <LinearLayout
  android:id="@+id/display_dialog_intelligence_linner"
  android:layout_width="match_parent"
  android:layout_height="65dp"
  android:orientation="horizontal">

  <ImageView
  android:id="@+id/display_dialog_intelligence_iv"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center"
  android:src="@mipmap/abc_btn_radio_to_on_mtrl_000" />

  <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center"
  android:layout_marginLeft="10dp"
  android:text="智能显示"
  android:textColor="@color/colorGreen2" />
 </LinearLayout>

 <View
  android:layout_width="match_parent"
  android:layout_height="1dp"
  android:background="@color/forget_password" />

 <LinearLayout
  android:id="@+id/display_dialog_custom_linner"
  android:layout_width="match_parent"
  android:layout_height="65dp"
  android:orientation="horizontal">

  <ImageView
  android:id="@+id/display_dialog_custom_iv"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center"
  android:src="@mipmap/abc_btn_radio_to_on_mtrl_000" />

  <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center"
  android:layout_marginLeft="10dp"
  android:text="自定义显示"
  android:textColor="@color/colorGreen2" />
 </LinearLayout>
 </LinearLayout>
</LinearLayout>

style样式:

<style name="activityTheme" parent="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
 <item name="android:windowFrame">@null</item><!--边框-->
 <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
 <item name="android:windowIsTranslucent">false</item><!--半透明-->
 <item name="android:windowNoTitle">true</item><!--无标题-->
 <item name="android:background">@android:color/transparent</item>
 <item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
 <item name="android:backgroundDimEnabled">true</item><!--模糊-->
 </style>

资源文件配置activity:

<activity
  android:name=".__activity.FloatWindowDialogActivity"
  android:screenOrientation="portrait"
  android:theme="@style/activityTheme" />

ok 搞定。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • android app判断是否有系统签名步骤详解

    android app判断是否有系统签名步骤详解

    这篇文章主要为大家介绍了android app判断是否有系统签名步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 一文详解 Compose Navigation 的实现原理

    一文详解 Compose Navigation 的实现原理

    这篇文章主要介绍了一文详解 Compose Navigation的实现原理,文章通告围绕主题展开详细的相关内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Android中在GridView网格视图上实现item拖拽交换的方法

    Android中在GridView网格视图上实现item拖拽交换的方法

    这篇文章主要介绍了Android中在GridView上实现item拖拽交换效果的方法,比起ListView的列表条目交换稍显复杂,文中先介绍了关于创建GridView的一些基础知识,需要的朋友可以参考下
    2016-04-04
  • Android实现全局悬浮框

    Android实现全局悬浮框

    这篇文章主要为大家详细介绍了Android实现全局悬浮框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • Android 使用压缩纹理的方案

    Android 使用压缩纹理的方案

    这篇文章主要介绍了Android 使用压缩纹理,本文介绍了什么是压缩纹理,以及加载压缩纹理的核心步骤,并在 Android OpenGLES 平台上实现了压缩纹理的显示,需要的朋友可以参考下
    2022-09-09
  • Assert.assertEquals()方法参数详解

    Assert.assertEquals()方法参数详解

    本文详细讲解了Assert.assertEquals()方法参数,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • android仿音悦台页面交互效果实例代码

    android仿音悦台页面交互效果实例代码

    这篇文章主要介绍了android 仿音悦台页面播放效果实例代码,新版的音悦台 APP 播放页面交互非常有意思,可以把播放器往下拖动,然后在底部悬浮一个小框,还可以左右拖动。
    2017-01-01
  • RecyclerView实现侧滑和网络断点续传

    RecyclerView实现侧滑和网络断点续传

    这篇文章主要为大家详细介绍了RecyclerView实现侧滑和网络断点续传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Android5.0+ CollapsingToolbarLayout使用详解

    Android5.0+ CollapsingToolbarLayout使用详解

    这篇文章主要为大家详细介绍了Android5.0+ CollapsingToolbarLayout使用,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Android  调用系统应用的方法总结

    Android 调用系统应用的方法总结

    这篇文章主要介绍了Android 调用系统应用的方法总结的相关资料,这里提供调用录像,录音,拍照等功能,需要的朋友可以参考下
    2017-08-08

最新评论