将Android(安卓)Activity设置成对话框式
16lz
2021-01-25
将activity设置成对话框样式,只需在activity属性里面增加下面一句代码:
?1 | android:theme= "@android:style/Theme.Dialog" |
然后可以activity左边增加一个小图片,让它更像Dialog,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package com.home.testactivitydialog; import android.os.Bundle; import android.view.Window; import android.app.Activity; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_LEFT_ICON); setTitle( "测试对话框式activity" ); // 设置标题 setContentView(R.layout.main); // 设置布局内容 // 设置左边图标 getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.drawable.ic_dialog_alert); } } |
但是上面的设置往往还不能满足实际需求,因为样子、背景和一些属性使用的默认的,下面使用style自定义一个,以后可以根据实际需要自行更改:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | < style name = "dialog" parent = "@android:style/Theme.Dialog" > <!-- 去黑边 --> < item name = "android:windowFrame" >@null</ item > <!-- 设置是否可滑动 --> < item name = "android:windowIsFloating" >true</ item > <!-- 设置是否透明 --> < item name = "android:windowIsTranslucent" >true</ item > <!-- 无标题 --> < item name = "android:windowNoTitle" >true</ item > <!-- 背景 --> < item name = "android:background" >@null</ item > <!-- 窗口背景 --> < item name = "android:windowBackground" >@android:color/transparent</ item > <!-- 是否变暗 --> < item name = "android:backgroundDimEnabled" >false</ item > <!-- 点击空白部分activity不消失 --> < item name = "android:windowCloseOnTouchOutside" >false</ item > </ style > |
这样在主题里直接引用:
1 | android:theme= "@style/dialog" |
点击activity空白处不消失也可以代码里面设置,在onCreate()方法里面加上:
1 | setFinishOnTouchOutside( false ); |
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- Android中用SP(SharedPreferences)保存数据
- Android开发之LisitView的图文并排效果实现(源代码分享)
- Android(安卓)动态创建Tab
- 【Android(安卓)开发教程】GridView
- Android(安卓)-- 官方下拉刷新SwipeRefreshLayout
- android之开机跳过锁屏界面自启动应用
- Android:实现装备购买
- Android与JS通过JSBridge(BridgeWebView )相互调用详解