这里有新鲜出炉的精品教程,程序狗速度看过来!
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
这篇文章主要给大家介绍了关于 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 搞定。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对 PHPERZ 的支持。
来源: http://www.phperz.com/article/17/0824/337620.html