Android使用Dialog风格弹出框的Activity

在Android中经常会遇到需要使用Dialog风格弹出框的activity,首先我们可能会首先想到的是在XML布局文件中设置android:layout_height="wrap_content"属性,让activity的高度自适应,显然这还不行,我们还需要为其DialogActivity设置自定义一个样式

<style name="dialogstyle">
  <!--设置dialog的背景-->
  <item name="android:windowBackground">@android:color/transparent</item>
  <!--设置Dialog的windowFrame框为无-->
  <item name="android:windowFrame">@null</item>
  <!--设置无标题-->
  <item name="android:windowNoTitle">true</item>
  <!--是否浮现在activity之上-->
  <item name="android:windowIsFloating">true</item>
  <!--是否半透明-->
  <item name="android:windowIsTranslucent">true</item>
  <!--设置窗口内容不覆盖-->
  <item name="android:windowContentOverlay">@null</item>
  <!--设置动画,在这里使用让它继承系统的Animation.Dialog-->
  <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
  <!--背景是否模糊显示-->
  <item name="android:backgroundDimEnabled">true</item>
 </style>

然后在AndroidManifest.xml中设置DialogActivity的样式为我们自定义的dialogstyle

如下是布局的代码

<?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="wrap_content"
 android:background="@color/white"
 android:orientation="vertical">

 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="65dp"
  android:orientation="horizontal"
  android:paddingLeft="@dimen/acitvity_margin"
  android:paddingRight="@dimen/acitvity_margin">

  <LinearLayout
   android:layout_width="0dp"
   android:layout_height="match_parent"
   android:layout_weight="1"
   android:orientation="horizontal">

   <TextView
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:gravity="center"
    android:text="上班时间:"
    android:textColor="@color/grey"
    android:textSize="@dimen/size_text_medium" />

   <Button
    android:id="@+id/tv_signin_time"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:gravity="center"
    android:text="9:00"
    android:textColor="@color/grey"
    android:textSize="@dimen/size_text_medium" />
  </LinearLayout>

  <LinearLayout
   android:layout_width="0dp"
   android:layout_height="match_parent"
   android:layout_weight="1"
   android:orientation="horizontal">

   <TextView
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:gravity="center"
    android:text="下班时间:"
    android:textColor="@color/grey"
    android:textSize="@dimen/size_text_medium" />

   <Button
    android:id="@+id/tv_signout_time"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:gravity="center"
    android:text="18:00"
    android:textColor="@color/grey"
    android:textSize="@dimen/size_text_medium" />
  </LinearLayout>
 </LinearLayout>

 <RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="65dp"
  android:paddingLeft="@dimen/acitvity_margin"
  android:paddingRight="@dimen/acitvity_margin">

  <TextView
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_alignParentLeft="true"
   android:gravity="center"
   android:text="公司位置:"
   android:textColor="@color/grey"
   android:textSize="@dimen/size_text_medium" />

  <EditText
   android:id="@+id/et_address"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_marginLeft="2dp"
   android:layout_toRightOf="@+id/tv_address"
   android:background="@color/white"
   android:hint="请输入公司位置"
   android:singleLine="true"
   android:textSize="@dimen/size_text_small" />

  <TextView
   android:id="@+id/tv_location"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentRight="true"
   android:layout_centerInParent="true"
   android:gravity="center"
   android:padding="5dp"
   android:text="重新定位"
   android:textColor="@color/blue"
   android:textSize="@dimen/size_text_medium" />
 </RelativeLayout>

 <RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="65dp"
  android:paddingLeft="@dimen/acitvity_margin"
  android:paddingRight="@dimen/acitvity_margin">

  <TextView
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_alignParentLeft="true"
   android:gravity="center"
   android:text="设置管理员:"
   android:textColor="@color/grey"
   android:textSize="@dimen/size_text_medium" />

  <ImageView
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_alignParentRight="true"
   android:gravity="center"
   android:src="@mipmap/icon_toright" />
 </RelativeLayout>
</LinearLayout>

接下来我们再看一下效果图是不是我们想要的呢

源码下载:http://xiazai.jb51.net/201609/yuanma/DialogActivity(jb51.net).rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android 多种简单的弹出框样式设置代码

    简介 这是一个基于AlertDialog和Dialog这两个类封装的多种弹出框样式,其中提供各种简单样式的弹出框使用说明.同时也可自定义弹出框. 项目地址:http://www.github.com/jjdxmashl/jjdxm_dialogui 特性 1.使用链式开发代码简洁明了 2.所有的弹出框样式都在DialogUIUtils这个类中完成,方便查阅方法 3.可以自定义弹出框字体样式 4.简单的类似加载框的样式可以支持两种主题更改默认白色和灰色 截图 demo下载 demo apk下载 D

  • android使用PopupWindow实现页面点击顶部弹出下拉菜单

    实现此功能没有太多的技术难点,主要通过PopupWindow方法,同时更进一步加深了PopupWindow的使用,实现点击弹出一个自定义的view,view里面可以自由设计,比较常用的可以放一个listview. demo中我只是一个点击展示,简单的使用了fade in out的动画效果,也没有精美的图片资源,看着也丑,不过这么短的时间,让你掌握一个很好用的技术,可以自己扩展,不很好么? 废话不说了,直接上代码: MainActivity.java public class MainActivi

  • Android编程实现popupwindow弹出后屏幕背景变成半透明效果

    本文实例讲述了Android编程实现popupwindow弹出后屏幕背景变成半透明效果的方法.分享给大家供大家参考,具体如下: android中popupwindow弹出后,屏幕背景变成半透明这个效果很普通.实现的方法也很多.我使用的可能是最简单的一种,就是设置一下getWindows的透明度.不多说上代码 /** * 设置添加屏幕的背景透明度 * @param bgAlpha */ public void backgroundAlpha(float bgAlpha) { WindowManag

  • Android实现可输入数据的弹出框

    之前一篇文章,介绍了如何定义从屏幕底部弹出PopupWindow即<Android Animation实战之屏幕底部弹出PopupWindow>,写完之后,突然想起之前写过自定义内容显示的弹出框,就随手写了两个实例,分享出来: 第一种实现方式:继承Dialog  1.1 线定义弹出框要显示的内容:create_user_dialog.xml <?xml version="1.0" encoding="utf-8"?> <LinearLa

  • android popwindow实现左侧弹出菜单层及PopupWindow主要方法介绍

    PopupWindow可以实现浮层效果,主要方法有:可以自定义view,通过LayoutInflator方法:可以出现和退出时显示动画:可以指定显示位置等. 为了将PopupWindow的多个功能展现并力求用简单的代码实现,编写了一个点击按钮左侧弹出菜单的功能,实现出现和退出时显示动画效果并点击其他区域时弹出层自动消失,效果图如下: 源码: 1.PopwindowOnLeftActivity.java 复制代码 代码如下: package com.pop.main; import android

  • android PopupWindow 和 Activity弹出窗口实现方式

    本人小菜一个.目前只见过两种弹出框的实现方式,第一种是最常见的PopupWindow,第二种也就是Activity的方式是前几天才见识过.感觉很霸气哦.没想到,activity也可以做伪窗口. 先贴上最常见的方法,主要讲activity的方法. 一.弹出PopupWindow 复制代码 代码如下: /** * 弹出menu菜单 */ public void menu_press(){ if(!menu_display){ //获取LayoutInflater实例 inflater = (Layo

  • Android Animation实战之屏幕底部弹出PopupWindow

    Android动画的一个实战内容,从屏幕底部滑动弹出PopupWindow. 相信这种效果大家在很多APP上都遇到过,比如需要拍照或者从SD卡选择图片,再比如需要分享某些东西时,大多会采用这么一种效果: 那这种效果如何实现呢? 我们仿写一个这种效果的实例吧: 1)我们首先定义一下,弹出窗口的页面布局组件:take_photo_pop.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout

  • Android Popwindow弹出框的模板使用示例

    Pop弹出框 public class ProductSortPop { private Context mContext; private View.OnClickListener mOnClickListener; //创建一个点击事件接口回调数据 private TextView mAllSort; private TextView mNewSort; private TextView mCommentSort; private View mLeftV; private PopupWind

  • Android中解决EditText放到popupWindow中,原有复制、粘贴、全选、选择功能失效问题

    1.原来是将EditView放到了popupwindow,发现EditView原有的复制.粘贴.全选.选择功能失效了,所以便用DialogFragment代替了popupWindow 直接上代码 ①.先看布局文件 <?xml version="." encoding="utf-"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

  • Android PopupWindow 点击外面取消实现代码

    private void showPopupView() { if (mPopupWindow == null) { View view = getLayoutInflater().inflate(R.layout.newest_layout, null); mPopupWindow = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); mPopupWindow.setFocusable(tr

  • Android中自定义PopupWindow实现弹出框并带有动画效果

    使用PopupWindow来实现弹出框,并且带有动画效果 首先自定义PopupWindow public class LostPopupWindow extends PopupWindow { public Lost lost; public void onLost(Lost lost){ this.lost = lost; } private View conentView; public View getConentView() { return conentView; } public L

随机推荐