学习
实践
活动
工具
TVP
写文章

Android项目实战(七):Dialog主题Activity实现自定义对话框效果

想必大家都用过Dialog主题的Activity吧,用它来显示自定义对话框效果绝对是一个非常不错的选择。 即把activity交互界面以Dialog的形式展现出来,Dialog主题的Activity大小将以内容的宽高来决定 <activity android:name=”MainActivity” android :theme=”@android:style/Theme.Dialog”> </activity> 可以看到设置为Theme.Dialog主题的activity显示效果, 是类似对话框的形式显示出来的 android:theme=”@android:style/Theme.Dialog” 主题的Activity是方方正正的对话框样式的。 实现方法就是 自定义一个style ,在res/styles.xml 文件中 <style name="MyDialogStyle"> <item name="android:windowBackground

2.3K80

Android不依靠ActivityDialog显示View的方法

一、首先我们先看下Activity是如何显示View 平常我们在Activity的onCreate会调用setContentView(R.layout.xxx),Activity启动过程与window的源码流程可参考 总结几个步骤: 1、创建Activity:ActivityThread的performLaunchActivity函数中创建Activity后,调用Activity.attach函数 2、创建PhoneWindow :Activity.attach函数中创建与之关联的PhoneWindow,PhoneWindow会创建DectorView。 的onResume, 然后设置Activity的PhoneWindow的type类型: r.window = r.activity.getWindow(); View decor = r.window.getDecorView . */ public static final int TYPE_APPLICATION = 2; 这个Dialog的window就需要依赖Activity

23910
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android项目实战(七):Dialog主题Activity实现自定义对话框效果

    想必大家都用过Dialog主题的Activity吧,用它来显示自定义对话框效果绝对是一个非常不错的选择。 即把activity交互界面以Dialog的形式展现出来,Dialog主题的Activity大小将以内容的宽高来决定 <activity android:name=”MainActivity” android :theme=”@android:style/Theme.Dialog”> </activity> 可以看到设置为Theme.Dialog主题的activity显示效果, 是类似对话框的形式显示出来的 android:theme=”@android:style/Theme.Dialog” 主题的Activity是方方正正的对话框样式的。 实现方法就是 自定义一个style ,在res/styles.xml 文件中 <style name="MyDialogStyle"> <item name="android:windowBackground

    80560

    如何使Android dialog弹出后当前的 activity背景不变暗

    lp.dimAmount =0f; 方法二:在style 的xml 里 设置如下 <resources> <style name="<em>dialog</em> " parent="@android:style/Theme.<em>Dialog</em>"> <item name="android:backgroundDimEnabled">false</item --activity不变暗--> </style> </resources> 设置为true, 背景变暗 Dialog = new DialogActivity, R.style.dialog

    36210

    Dialog 对应的 Context 必须是 Activity吗?

    image.png 打脸记录: A:Dialog传入的上下文必须为Activity这对么 我:这个对呀,需要activity的token A:可以说对,但是也没那么对。 我传入Dialog的context-直都没用activity 我:那第一个dialog的context应该是需要activity的 A:没有Activity的应用-样是可以显示Dialog的,setType 解答 1.先来看第二问:创建Dialog对象依赖的Context必须是Activity吗? 常规的Dialog的容器是Activity,所以它窗口属性的token引用的就是Activity的Token。 一种是创建Dialog时传了非Activity的Context,另一种是Dialog的Window.type指定为SYSTEM_WINDOW。

    1.7K00

    Android实现底部图片选择Dialog

    Dialog实现 布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width Dialog 创建 在style文件里面添加主题及dialog弹出动画 <style name="ActionSheetDialogStyle" parent="@android:style/Theme.<em>Dialog</em> -- 浮于<em>Activity</em>之上 -- <item name="android:windowIsFloating" true</item <! startActivityForResult(intent, PHOTO_REQUEST_CAREMA); } 图片选择后,最终都会把数据返回到onActivityResult()方法里面,所以我们需要在activity intent.putExtra("noFaceDetection", true);// 取消人脸识别 intent.putExtra("return-data", true); // 开启一个带有返回值的Activity

    23131

    Dialog自定义布局实现

    小记一次自定义ui布局的Dialog实现 很多时候我们会收到设计师各种花样别出的弹窗需求,比如各种颜色背景和圆角的设计,这时候可以使用安卓自带的dialog小巧快速的实现这种自定义的弹窗,安卓系统自带的系统 -- 是否浮现在activity之上 ==当windowIsFloatin为true时会两边有空白--> <! name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 步骤三:代码实现部分 (isCancleDialog); dialog.setCancelable(isCancleDialog); dialog.setView(rootview); dialog.getWindow().setBackgroundDrawable(); dialog.getWindow().setBackgroundDrawableResource(); dialog.getWindow

    8510

    实现Activity滑动退出

    实现Activity滑动退出 很多应用在二级详情页面加入了滑动退出activity的效果,很方便,心血来潮,想着自己也来实现这个效果,就当做练手吧。 ,因为滑动退出操作都是在屏幕的边缘时触发,而ViewDragHelper刚好提供了想要的实现,可以说利用ViewDragHelper来实现我们的需求非常简单。 ,但是有一点很不爽的是,我们必须将BaseSwipeLayout作为布局的根,这样实现还不够优雅,我们能不能不改变我们原有的布局文件,却依然能加入滑动退出功能。 ; public SwipeHelper(Activity activity) { this.mActivity = activity; } public void public void attachToActivity(Activity activity) { this.mActivity = activity; TypedArray

    70220

    Andoroid实现底部图片选择Dialog效果

    Dialog实现 布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width -- 浮于Activity之上 -- <item name="android:windowIsFloating" true</item <! startActivityForResult(intent, PHOTO_REQUEST_CAREMA); } 图片选择后,最终都会把数据返回到onActivityResult()方法里面,所以我们需要在activity intent.putExtra("noFaceDetection", true);// 取消人脸识别 intent.putExtra("return-data", true); // 开启一个带有返回值的Activity 不裁剪容易崩溃,而裁剪的另一个好处就是压缩图片 在我们获取bitmap后,可以在那里做一些业务操作,但是一定要记得把bitmap文件回收,不然容易导致内存泄漏 总结 以上所述是小编给大家介绍的Andoroid实现底部图片选择

    19741

    Angular 实现一个 Dialog 组件

    _visible = false; } 制作弹窗Dialog区域

    Android 全局Dialog的简单实现方法

    前言: 这里所说的全局Dialog是指无论当前应用是处于哪一个页面上,都能够及时弹出Dialog来提示用户一些信息,用户体验不会很好,一般应用于优先级非常高的通知。 分析 : 想要实现无论当前应用是处于哪一个页面上,都能够及时弹出Dialog功能其实很简单,只要能获取到当前显示的Activity就行了,也就是栈顶的Activity实现过程 : 一般项目中我们都会通过一个类来管理我们的Activity,即AppManager /** * Activity管理类 * @author Donkor */ public class 的显示问题,通过AppManager获取到当前栈顶的Activity,用于构造Dialog就行了。 代码如下: Dialog myDialog = new Dialog(AppManager.getAppManager().currentActivity(), R.style.dialog_style

    63520

    arouter实现activity跳转原理

    一、思路分析 arouter让我们可以非常简单地实现组件间页面跳转,实现的基本思路是 1. 在对应的activity上加上注解,通过apt技术来自动生成代码,代码能将 activity对应路径 和 class 添加到路由表中; 2. extends Activity>> routes; 3. 进行跳转时,通过路径可在路由表中找到对应的acitivity,从而实现跳转; 二、源码分析 1. ", RouteMeta.build(RouteType.ACTIVITY, Test2Activity.class, "/test/activity2", "test", new HashMap<String 跳转 有了路由表,跳转时,通过传入目标activity路径,arouter会根据路径从路由表中找到目标activity,然后将目标activity设置到intent上,再通过startActivity来实现跳转

    9220

    Android实现自定义dialog的代码

    Android自定Dialog 先上效果图: ? 1.先在drawable下新建一个drawble resource file,这个文件用于dialog的圆角背景 <? onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tianjiayaokong LayoutInflater inflater = getLayoutInflater(); //通过inflate加载出自定义布局 View view = inflater.inflate(R.layout.activity_dialog_componet ,null); final Dialog dialog = new Dialog(this,R.style.custom_dialog); dialog.setContentView(view) (); } }); dialog.show(); } } 总结 以上所述是小编给大家介绍的Android实现自定义dialog的代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言

    24520

    安卓自定义Dialog实现

    一、Dialog布局文件 <?xml version="1.0" encoding="utf-8"? 二、Style <style name="<em>Dialog</em>" parent="android:style/Theme.<em>Dialog</em>"> <item name="android:background with the custom Theme final CustomDialog <em>dialog</em> = new CustomDialog(context, R.style.<em>Dialog</em> ); View layout = inflater.inflate(R.layout.<em>dialog</em>_normal_layout, null); <em>dialog</em>.addContentView (layout); return <em>dialog</em>; } } }

    65430

    Element UI 中 dialog 可拖拽实现方法

    dialogDrag', { bind(el, binding, vnode, oldVnode) { const headerElement = el.querySelector('.el-dialog __header') const dragDialog = el.querySelector('.el-dialog') headerElement.style.cursor } } }) 二、在main.js中引入dialogDrag.js import '@/utils/dialogDrag 三、在vue页面中使用,给 el-dialog 添加 v-dialogDrag指令 </el-dialog> <el-dialog v-dialogDrag title="提示2" :visible.sync="testDialog.dialogVisible2 primary">确 定</el-button> <el-button @click="handleClose">取消</el-button> </el-dialog

    2.6K10

    hook activity的mInstrumentation实现

    image.png 理论知识参考:activity的启动流程(一) hook activity 下载反射使用代码RefInvoke.java hook思路: 获取实例中的mInstrumentation 区域 创建MyInstrumentation对象 使用MyInstrumentation对象替换掉实例中的mInstrumentation区域 核心代码如下: // hook实现静态代理 // hook package com.exmple.hookactivity; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity ); // hook实现静态代理 // hook本MainActivity实例的mInstrumentation // 替换为myInstrumentation pls adapt it"); } } } activity_main.xml: <?xml version="1.0" encoding="utf-8"?

    34230

    Activity是如何实现LifecycleOwner的?

    image.png 我们都知道Activity可作为LifecycleOwner为LiveData的使用提供条件,那么Activity是如何实现LifecycleOwner的呢? Activity虽然实现了LifecycleOwner接口,但是并没有实现相关处理,而是通过添加一个Fragment来代理Lifecycle的分发。 SupportActivity Activity通过继承SupportActivity实现LifecycleOwner接口。 两种Fragment 通过上面分析,我们知道Activity是通过ReportFragment代理了LifecycleOwner的实现。 总结 *通过源码分析Activity对于LifecycleOwner的实现后,我们得到以下结论 Activity不直接调用HandleLifecycleEvent进行生命周期的分发,而是通过ReportFragment

    50330

    android dialog用法

    如果你希望自定义你的对话框, 可以扩展Dialog类.   Showing a Dialog 显示对话框   一个对话框总是被创建和显示为一个Activity的一部分. 然后将你的OnDismissListener实现传给setOnDismissListener().   然而,注意对话框也可以被"取消". 你通常应该从protected Dialog Activity.onCreateDialog (int id) 回调方法里创建对话框。 当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(int id),你应该在这里初始化这个对话框Dialog。 (个人理解是,在本Activity里第一次show某个Dialog,则先调用onCreateDialog,得到返回的Dialog对象并挂靠在Activity,保存Dialog对象的引用,然后才显示Dialog

    12030

    三句代码创建全屏Dialog或者DialogFragment:带你从源码角度实现全屏Dialog

    Dialog是APP开发中常用的控件,同Activity类似,拥有独立的Window窗口,但是DialogActivity还是有一定区别的,最明显的就是:默认情况下Dialog不是全屏的,所以布局实现不如 全屏Dialog 全屏Dialog实现方法 这里对象分为两种,一种是针对传统的Dialog,另一种是针对DialogFragment(推荐),方法也分为两种一种是利用代码实现,另一种是利用主题样式Theme 针对DialogFragment的实现方式 Android比较推荐采用DialogFragment实现对话框,它完全能够实现Dialog的所有需求,并且还能复用Fragment的生命周期管理,被后台杀死后还能自动恢复 全屏Dialog实现原理 针对以下三个属性一步步分析。 默认样式同Dialog最大的区别之一,对比一下默认的Dialog主题与Activity主题,两者都是继承Theme,在Theme中 Theme <style name="Theme">

    1.8K40

    扫码关注腾讯云开发者

    领取腾讯云代金券