dialog式的Activity

Android对话框新思路:基于Activity的封装设计与实践 本文探讨了将Activity作为Dialog使用的实现方案。相比传统Dialog和DialogFragment,Activity作为Dialog具有生命周期同步、便于MVP模式交互等优势。关键实现步骤包括:1)定义透明浮动主题DialogActivity;2)在Activity中设置无标题栏;3)支持点击外部关闭功能。文章还提供了圆角对话框和关闭按钮动画的具体实现代码,包括布局文件、背景设置和旋转动画配置。这种方案适用于需要更好控制生命周期、便于数据交互的场景。 阅读详情

默认的activity都是全屏的,如果activity是以dialog的形式与用户交互比普通的dialog更方便,效果也更好。主要是dialog式的activity可以自定义布局,位置也可以自由改变。

先定义一个style :MyDialogTopRight

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyDialogTopRight" parent="Theme.AppCompat.Dialog">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsTranslucent">true</item>
    </style>
</resources>

再在manifest的activity里加上 android:theme=”@style/MyDialogTopRight”

这里注意的是“Theme.AppCompat.Dialog”如果写成“Theme.Dialog”就会出错,原因是我们的Activity继承的是AppCompatActivity。

另外不知道什么原因,windowNoTitle的属性设置了是没有效果的,所以只能在manifest里设置android:label=” “以去除标题栏。

接下来写一下layout文件

<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" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/f"
            android:text="第一"
            android:layout_margin="10dp"
            />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/s"
            android:text="第二"
            android:layout_margin="10dp"/>
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/t"
            android:text="第三"
            android:layout_margin="10dp"/>


    </LinearLayout>

</RelativeLayout>

值得留意的是android:drawbleLeft的属性。
在这里导入drawble的图片icon类型是错误的,as会提醒只能是png文件或xml文件。

最后再在oncreate()里写一下activity显示的位置

getWindow().setGravity(Gravity.RIGHT); 

最后看一下效果
这里写图片描述

Dialog样式的Activity-可以在任何地方弹出的Dialog 详情请见:http://www.yipwey.com/detail/dialogactivity/ 立即下载

相关推荐

华为手机连接Win11失败?内核隔离与驱动签名冲突的终极解决指南

在Windows操作系统中,驱动程序是硬件与系统通信的桥梁,其数字签名机制是保障系统内核安全的核心防线。基于虚拟化的安全技术通过强制验证驱动签名,能有效隔离恶意代码,提升系统抵御高级威胁的能力。然而,严格的签名策略有时会与部分硬件驱动产生兼容性问题,导致设备无法识别,直接影响文件传输、应用调试等核心工作流。本文聚焦于华为手机在开启Windows 11内核隔离功能时出现的连接故障,深入剖析驱动签名验证与Hypervisor保护的代码完整性原理,并提供从驱动更新、策略调整到无线替代方案的完整解决路径,帮助用户在

weixin_31309419的博客 352

Adnroid组件 Activity数据传递/DialogActivity使用

一、Activity Dialog 概述 在使用 Dialog 时,如果需要用到很多自己设计的控件,虽然可以让弹出框显示出我们需要的界面,但却无法找到地方完成控制代码的编写,如何解决这个问题呢,我们可以将Activity伪装成Dialog弹出框,这样既显示了界面,又可以在Activity里写控制代码。这就是DialogActivity。 默认情况下,一个 Activity 占据整个屏幕。然而,可以为一个 Activity 设置一个“对话框”主题,这样它就能像一个浮动的对话框显示出来了。举个例子,你可能想要把

3Blue1Red的博客 2851

告别VBA!用Python+PyWin32自动化你的SolidWorks建模流程(附完整代码)

本文详细介绍了如何利用Python和PyWin32实现SolidWorks建模流程的自动化,替代传统的VBA宏开发。通过环境配置、宏代码转换、高级开发模式及工程化实践等实战内容,帮助机械设计师构建高效、可维护的自动化工作流,显著提升设计效率。

weixin_30485379的博客 365

DialogActivity

文章目录一、系统主题二、自定义主题三、生命周期 一、系统主题 第一种方式就是直接在xml的设置中改变主题为: <activity android:name=".TwoActivity" android:theme="@style/Theme.AppCompat.Dialog"> </activity> ...

蓝家彬的博客 5628

流式数据湖存储技术,Apache Paimon是什么?

是一项流式数据湖存储技术,可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。Paimon 采用开放的数据格式和技术理念,可以与 Apache Flink / Spark / Trino 等诸多业界主流计算引擎进行对接,共同推进 Streaming Lakehouse 架构的普及和发展。

一个写湿的程序猿 2万+

GPIB通讯的代码怎么写

GPIB(General Purpose Interface Bus)是一种用于连接计算机和测试设备的接口标准。 在写 GPIB 通讯的代码时,首先需要在计算机上安装 GPIB 驱动程序。然后,使用相应的编程语言和 GPIB 库函数来操作 GPIB 设备。 下面是一个使用 Python 语言和 pyvisa 库来实现 GPIB 通讯的示例代码: import visa# 创建 Visa 资源管理器...

weixin_35752645的博客 1546

把Activity当做dialog对话框使用

模拟器上显示背景是黑色的这个不用管,只要在真机上显示没问题就行了,由于这里已经把activity转化为对话框使用,因此被当做对话框的activity不能操作状态栏,其它操作和普通activity一样。

qq_56819189的博客 2446

Matlab GUIDE -- 串口操作

1、首先新建-->应用程序-->GUIDE。 2、绘制一个简单的UI。 3、然后右击“打开串口”图标-->查看回调-->callback,即可打开此图标的回调函数,此回调函数是press button时执行(可按需要选择其他回调)。 4、在回调函数中添加打开串口的代码。 delete(instrfindall); %删除所有串口 s3 = serial('CO

Asgard-X 2837

Dialog式的Activity(AndroidActivity生命周期)

概述   和普通的Activity跳转稍微不同的是,当第1个Activity跳转到第二个Activity后,如果点击'back'按钮(即Android键盘的按钮,则不会调用调用第一个Activity的onStop方法,因为弹出对话框的时候,第1个Activity对用户仍然是Visible(可见的).   如下,定义了两个继承Activity的java类: 1 package com...

weixin_30338743的博客 558

推理引擎终极对决:TensorRT vs ONNX Runtime,YOLOv8速度差30%的核心原因与实操指南

若你使用NVIDIA GPU,且追求极致速度和低延迟,TensorRT是唯一选择,尤其是边缘设备和实时场景;若你需要跨硬件部署、快速验证原型,或预算有限(无需NVIDIA GPU),ONNX Runtime是性价比之王;对于YOLOv8这类检测模型,TensorRT的FP16/INT8量化是“免费的速度提升”,建议优先采用。最后提醒:推理引擎的优化是“细节决定成败”——同样的引擎,不同的预处理方式、显存配置、批大小,都会导致10%-20%的性能差异。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1026

Vek385评估板(二):板子联网 & memtester安装(LPDDR5X测试)

继上一篇文章:Vek385评估板(一):EDF成功烧录启动及一些问题。 本章完成最主要的两个功能:开发板联网+内存 memtester。因为我是做测试行业的,所以这两个是最想试的。内存测试,除了FPGA测,也可以系统级测,本次在versal上实现这个功能,主要是可以应急。在没有安卓、X86的情况下,可以使用本方案测试。 下一篇会继续做一些其他功能。

千歌叹尽执夏的博客 222

Android dialog Activity 使用

dialog 弹窗使用很方便,我们都知道 Activity 也能搞成 dialog 形式,更加方便,下面我们下一个 dialog 样式的Activity 吧: 1、在 value/style.xml 内写给即将设置的 dialog-Activity 样式,楼主仅仅写一写必要的样式; <style name="dialog_style" parent="@style/AppTheme"> <!--是否悬浮在activity上--> &lt..

chuyouyinghe的专栏 1827

uniapp - 鸿蒙真机运行报错hvigor ERROR: Failed :entry:default@CompileArkTS...,hvigor ERROR: default@CompileAr

uniapp鸿蒙报错> hvigor ERROR: Failed :entry:default@CompileArkTS... hvigor ERROR: default@CompileArkTS watch work[0] failed. 【HarmonyOS】工程编译后报错hvigor ERROR: Failed :entry:default@CompileArkTS,uniAPP鸿蒙开发无法编译运行启动报错,工程编译后报错,运行不起来,删除掉项目entry下的build和.preview缓存文件后重新

🏆 前端领域优质创作者 4791

Dialog样式的Activity

在Android app开发过程中,总会有这样那样的需求,比如说最简单的一个需求就是我要写一个登陆窗口,它表面上看来是dialog,实际上是activity的化身。 同名文章也发表在此处:http://blog.youkuaiyun.com/student9128/article/details/51895383 首先看一下简单的效果图: 下面就简单说一下我的实现方法。 <style name="Theme.ActivityDialogStyle"parent="Theme.AppCompat.Ligh

chuyouyinghe的专栏 357

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android之利用activity进行弹窗dialog显示版本更新

最近项目需要做一个版本更新的功能,版本更新想起来不就是检查到有新版本,就给一个弹窗,提示用户更新就是了嘛,不难。 是的,不难,大家一下子可以想到的就是利用dialog来做。dialog进行弹窗提示,可以自定义布局,实现自己想要的效果,挺好的,但是有一点不好的就是需要一个窗体进行依附。但是可能会获取不到一个依附的窗体,这就是比较蛋疼的问题了。想我之前做的单点登录问题就是了。要一个窗体进行依

姚镜堂 5677

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

activity作为dialog样式弹出,finish后还显示在页面

在一个activity 跳转到一个以activity 作为dialog样式弹出的对话框, 执行完一些列操作后 想finish掉该dialog 执行后没有反应, dialog还在。解决:将DialogActivity的启动模式改为:Android:launchMode=”singleTop”

qq_31580693的博客 1370

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android 横屏进入新Activity时布局异常的问题(待解决)

在做平板的横竖屏切换时遇到了个奇怪的问题,从ActivityA调到ActivityB时会请求下载一个pdf显示,给了一个dialog显示下载进度,下面是我几种情况下的测试结果。

wuxiaoxiaoxiaozhi的博客 505

Activity has leaked window com.android.internal.policy.impl.PhoneWindow

该死的异常,记住在每个用到它的activity里的ondestro

lskshz的专栏 878

利用Activity的Dialog风格完成弹出框设计,弹出activity

在我们使用Dialog时,如果需要用到很多自己设计的控件,虽然可以让弹出框显示出我们需要的界面,但却无法找到地方完成控制代码的编写,如何解决这个问题呢,我们可以将Activity伪装成Dialog弹出框,这样即显示了界面,在Activity里写控制代码也是大家的拿手好戏了,现在我就来抛砖引玉说说简单的实现吧。 首先,问题的关键在MainActivity里的一句 Android:theme="

allen_704的专栏 1151

Activity 以 Dialog 形式存在

Activity 以 Dialog 形式存在   点击打开链接:http://blog.163.com/tian1988shuguang@126/blog/static/1416610122011919114737316/ public class DialogActivity extends Activity {        @Override     protect

ANDROID 笔记栈 447

让Activity像Dialog一样从屏幕底部弹出

第一步 准备XML 1.retech_page_from_bottom <?xml version="1.0" encoding="utf-8"?> <!-- 页面从屏幕底部进入 --> <set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="30...

wangxumh520的博客 1335

Activity以对话框Dialog形式展现(显示大图)

1、设置屏幕高度宽度。//窗口对齐屏幕宽度 Window win = this.getWindow(); win.getDecorView().setPadding(0, 0, 0, 0); WindowManager.LayoutParams lp = win.getAttributes(); lp.width = WindowManager.LayoutParams.MATCH_PARENT;

Li_peilun的博客 1600

android 窗口式activity

android 生成窗口式activity

qq_33140021的博客 1350

Activity伪造Dialog的时候不能全屏显示

使用Activity伪造Dialog的时候出现不能全屏的问题,如图: 在对话框后边有一个黑色的背景。    解决方法: 在AndroidManifest.xml中为Activity添加对话框主题, &lt;activity android:name="com.jftt.odf_android.activity.XxxActivity" android:theme="@style/...

害羞雏田 301

Android Activity总结

Activity通常是学习Android写demo时遇到的第一个类,知名程度可以与经典的打印“Hello World”相媲美,毕竟在Android中即使想在界面上显示一个“Hello World”,也必须先创建Activiy子类在其onCreate方法中创建视图,在视图上添加文字“Hello World”。哈哈,接下来就来看看Android 的四大组件使用频率最高的Activity吧。

Android 2660
上一篇: android基础--AsyncTask
下一篇: java编程知识--初始化
CodeForFreeX
博客等级 码龄12年 43粉丝 25原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值