欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现可使用自定义透明Dialog样式的Activity完整实例

程序员文章站 2024-03-05 10:36:00
本文实例讲述了android实现可使用自定义透明dialog样式的activity。分享给大家供大家参考,具体如下: 有时你需要一个对话框,但同时对话框中的内容有更多控制...

本文实例讲述了android实现可使用自定义透明dialog样式的activity。分享给大家供大家参考,具体如下:

有时你需要一个对话框,但同时对话框中的内容有更多控制和能控制其生命周期,这时你可以使用带有dialog样式的activity来应用你的项目中,想使activity有对话框那样效果可以在androidmanifest中添加 android:style/theme.dialog 的主题特性

例如这样:

<activity android:name="mydialogactivity"
    android:theme="@android:style/theme.dialog">
</activity>

如果你觉得上面不足以满足你的需求想实现 半透明的, 圆角的,不妨可以试试自定义对话框的style

首先

第一步: 准备工作要做好 一张.9图片

Android实现可使用自定义透明Dialog样式的Activity完整实例
loading_bg.9.png

第二步 :自定义style   在你项目 values 文件夹中创建一个styles.xml 文件

接着在styles文件中添加 名为 mydialogstyle的style

<style name="mydialogstyle">
    <item name="android:windowbackground">@android:color/transparent</item>
    <item name="android:windowframe">@null</item>
    <item name="android:windownotitle">true</item>
    <item name="android:windowisfloating">true</item>
    <item name="android:windowistranslucent">true</item>
    <item name="android:windowcontentoverlay">@null</item>
    <item name="android:windowanimationstyle">@android:style/animation.dialog</item>
    <item name="android:backgrounddimenabled">true</item>
</style>

第三步:dialog的布局 在layout文件夹中添加布局文件  activity_main.xml

<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">
  <relativelayout
    android:layout_width="180dp"
    android:layout_height="180dp"
    android:layout_centerinparent="true"
    android:background="@drawable/loading_bg" >
    <linearlayout
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_alignparentleft="true"
      android:layout_alignparenttop="true"
      android:gravity="center"
      android:orientation="vertical" >
      <progressbar
        android:id="@+id/progressbar1"
        style="?android:attr/progressbarstylelarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal" />
      <textview
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margintop="10dp"
        android:text="正在登录"
        android:textcolor="#fff"
        android:textsize="20sp" />
    </linearlayout>
  </relativelayout>
</relativelayout>

创建 dialogactivity类

public class dialogactivity extends activity
{
  @override
  protected void oncreate(bundle savedinstancestate)
  {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
    // 这里你可以进行一些等待时的操作,我这里用8秒后显示toast代理等待操作
    new handler().postdelayed(new runnable(){
      @override
      public void run(){
        dialogactivity.this.finish();
        toast.maketext(getapplicationcontext(), "登录成功", toast.length_short).show();
      }
    }, 8000);
  }
}

第四步 : 在manifest文件中对dialogactivity进行注册,并使用上面自定义mydialogstyle样式

<activity
   android:name="loadingactivity"
   android:theme="@style/mydialogstyle" />

第五步:运行工程并查看效果图

Android实现可使用自定义透明Dialog样式的Activity完整实例

打完收工

更多关于android相关内容感兴趣的读者可查看本站专题:《android编程之activity操作技巧总结》、《android控件用法总结》、《android视图view技巧总结》、《android文件操作技巧汇总》、《android操作sqlite数据库技巧总结》、《android操作json格式数据技巧总结》、《android数据库操作技巧总结》、《android编程开发之sd卡操作方法汇总》、《android开发入门与进阶教程》及《android资源操作技巧汇总

希望本文所述对大家android程序设计有所帮助。