Android UIc 插件开发获取属性中,设置Activity的什么属性可以使Activity显示为对话框样式.

Android实现可使用自定义透明Dialog样式的Activity完整实例
转载 &更新时间:日 11:02:37 & 作者:manymore13
这篇文章主要介绍了Android实现可使用自定义透明Dialog样式的Activity,结合完整实例形式分析了Android Activity自定义style的操作步骤与相关技巧,需要的朋友可以参考下
本文实例讲述了Android实现可使用自定义透明Dialog样式的Activity。分享给大家供大家参考,具体如下:
有时你需要一个对话框,但同时对话框中的内容有更多控制和能控制其生命周期,这时你可以使用带有Dialog样式的Activity来应用你的项目中,想使Activity有对话框那样效果可以在Androidmanifest中添加 Android:style/Theme.Dialog 的主题特性
例如这样:
&activity android:name="MyDialogActivity"
android:theme="@android:style/Theme.Dialog"&
&/activity&
如果你觉得上面不足以满足你的需求想实现 半透明的, 圆角的,不妨可以试试自定义对话框的style
第一步: 准备工作要做好 一张.9图片
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&
第三步: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" /&
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
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 这里你可以进行一些等待时的操作,我这里用8秒后显示Toast代理等待操作
new Handler().postDelayed(new Runnable(){
public void run(){
DialogActivity.this.finish();
Toast.makeText(getApplicationContext(), "登录成功", Toast.LENGTH_SHORT).show();
第四步 : 在Manifest文件中对DialogActivity进行注册,并使用上面自定义MyDialogStyle样式
android:name="LoadingActivity"
android:theme="@style/MyDialogStyle" /&
第五步:运行工程并查看效果图
更多关于Android相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家Android程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!博客分类:
使用Activity伪造Dialog的时候出现不能全屏的问题,如图:
在对话框后边有一个黑色的背景。
解决方法:
在AndroidManifest.xml中为Activity添加对话框主题,
&activity android:name="com.jftt.odf_android.activity.XxxActivity"
android:theme="@style/Theme.CustomDialog"
android:launchMode="singleInstance" /&
这里我们使用的是自定义主题:
在Style.xml中为à
&style name="Theme.CustomDialog" parent="@android:style/Theme.Dialog"&
&item name="android:windowNoTitle"&true&/item&
&!-- 设置title --&
&item name="android:windowBackground"&@android:color/transparent&/item&
&item name="android:windowFrame"&@null&/item&
&!-- 设置边框 --&
&item name="android:windowIsTranslucent"&true&/item&
&!-- 设置半透明 --&
&item name="android:windowFullscreen"&true&/item&
&!-- 设置全屏 --&
运行可能还有问题,所以要在这个Activity中添加一行语句:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.frame_manage_dialog);
getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);//需要添加的语句
initView();
浏览 11179
Activity伪造Dialog,这个Dialog显示的时候界面不会黑一会吗?不会啊,就像你打开一个新页面一样,只有这个页面全部加载才跳转的吧。
txlong_onz
浏览: 998998 次
来自: 郑州
非常有用,多谢楼主
haotainan 写道Activity伪造Dialog,这个 ...
Activity伪造Dialog,这个Dialog显示的时候界 ...
cainingyouyou 写道7楼的,tag,怎么解决的啊1 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!下面是style的一些属性及其解释
&style name="dialog_translucent" parent="@android:style/Theme.Dialog"&
&item name="android:windowFrame"&@null&/item&&!-- 边框 --&
&item name="android:windowIsFloating"&true&/item&&!-- 是否悬浮在activity上 --&
&item name="android:windowIsTranslucent"&false&/item&&!-- 半透明 --&
&item name="android:windowNoTitle"&true&/item&&!-- 无标题 --&
&item name="android:windowBackground"&@android:color/transparent&/item&&!-- 背景透明 --&
&item name="android:backgroundDimEnabled"&false&/item&&!-- 模糊 --&
&item name="android:backgroundDimAmount"&0.6&/item&&!-- 灰度 --&
&item name="android:windowContentOverlay"&@null&/item&&!-- 对话框是否有遮盖 --&
&item name="android:windowAnimationStyle"&@style/dialog_animation&/item&&!-- 弹出或者进入时的动画效果 --&
&item name="android:colorBackgroundCacheHint"&@null&/item&&!-- 背景缓存颜色 --&
自定义对话框效果如下
styles.xml
&style name="popupDialog" parent="@android:style/Theme.Dialog"&
&item name="android:windowNoTitle"&true&/item&
&item name="android:windowBackground"&@drawable/filled_box&/item&
&item name="android:backgroundDimEnabled"&false&/item&
&item name="android:windowIsTranslucent"&false&/item&
&item name="android:backgroundDimAmount"&0.6&/item&
&item name="android:windowAnimationStyle"&@style/dialog_animation&/item&
filled_box.xml
&?xml version="1.0" encoding="utf-8"?&
&shape xmlns:android="http://schemas.android.com/apk/res/android" &
&solid android:color="#9000"/&
&stroke android:width="3dp" color="#ffff8080"/&
&corners android:radius="30dp"/&
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"/&
dialog_animation.xml
&style name="dialog_animation"&
&item name="android:windowEnterAnimation"&@anim/fading_in&/item&
&item name="android:windowExitAnimation"&@anim/fading_out&/item&
在anim目录下创建fading_in.xml,进入时候的淡入效果
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="http://schemas.android.com/apk/res/android"&
android:duration="500"
android:fromAlpha="0.1"
android:toAlpha="1.0"
fading_out.xml淡出效果
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="http://schemas.android.com/apk/res/android"&
android:duration="500"
android:fromAlpha="1.0"
android:toAlpha="0.1"
showVerify方法,效果如上面图所示
private void verifyDialog(String msg)
final Dialog dialog = new Dialog(MainActivity.this, R.style.popupDialog);
dialog.setContentView(R.layout.verify_dialog);
dialog.setCanceledOnTouchOutside(false);
dialog.setCancelable(false);
TextView message = (TextView)dialog.getWindow().findViewById(R.id.messageTxt);
Button okBtn = (Button)dialog.getWindow().findViewById(R.id.dismissBtn);
message.setText(msg);
okBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(dialog!=null && dialog.isShowing())
dialog.dismiss();
if(dialog!=null && !dialog.isShowing())
dialog.show();
&如果是想把整个activity做成类似于微博的new feature透明背景样式,如图
上面的图是透明背景,透明颜色可以自己定义
styles.xml
&style name="activity_translucent"&
&item name="android:windowBackground"&@drawable/filled_activity_bg&/item&
&item name="android:backgroundDimEnabled"&false&/item&
&item name="android:windowNoTitle"&true&/item&
&item name="android:windowIsTranslucent"&false&/item&
&item name="android:windowContentOverlay"&@null&/item&
&item name="android:windowAnimationStyle"&@style/dialog_animation&/item&
&item name="android:colorBackgroundCacheHint"&@null&/item&
&item name="android:backgroundDimAmount"&0.6&/item&&!-- 灰度 --&
如果想设置的不是纯透明,改成灰色透明度的,可以设置windowBackground背景,下面是filled_activity_bg.xml,这样就是灰色的透明背景,类似于第一张图片
&?xml version="1.0" encoding="utf-8"?&
&shape xmlns:android="http://schemas.android.com/apk/res/android" &
&solid android:color="#9000"/&
&stroke color="#ffff8080"/&
如果不做任何灰度处理,效果如上图,可以设置背景色为透明
&style name="activity_translucent"&
&item name="android:windowBackground"&@android:color/transparent&/item&
&item name="android:backgroundDimEnabled"&false&/item&
&item name="android:windowNoTitle"&true&/item&
&item name="android:windowIsTranslucent"&false&/item&
&item name="android:windowContentOverlay"&@null&/item&
&item name="android:windowAnimationStyle"&@style/dialog_animation&/item&
&item name="android:colorBackgroundCacheHint"&@null&/item&
显示activity,代码如下。可以通过类似的原理制作遮罩层,其他的半透明能效果,例如popup菜单半透明效果等
Dialog dialog = new Dialog(MainActivity.this, R.style.activity_translucent);
dialog.setContentView(R.layout.transparent_layout);
dialog.show();
阅读(...) 评论()

我要回帖

更多关于 cad属性字段二次开发 的文章

 

随机推荐