Android Activity设置成对话框的形式,有很多详细的设置

Android中可用于实现对话框的有Dialog,PopupWindow,Activity。Dialog和PopupWindow的区别和使用已经在其他的博客中说明过了,连接:http://blog.csdn.net/pcaxb/article/details/46678621 , Activity与其他两个不同,她有自己的生命周期,在某些情况下需要使用Activity作为弹出式对话框。

1.在res/value文件夹下的style.xml文件中加入如下代码:

<style name="activitydialog">
<!-- 去黑边 -->
<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>  
<!--动画设置 -->
<item name="android:windowAnimationStyle">@style/Anim_scale</item>
</style>
动画设置的样式

<style name="Anim_scale" parent="@android:style/Animation.Activity">
   <item name="android:activityOpenEnterAnimation">@anim/scale_in</item>
   <item name="android:activityOpenExitAnimation">@anim/scale_out</item>
   <item name="android:activityCloseEnterAnimation">@anim/scale_in</item>
   <item name="android:activityCloseExitAnimation">@anim/scale_out</item>
</style>
2.在res/anim文件夹下新建动画文件,代码如下:

在res的anim中新建文件scale_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <scale
        android:fromXScale="1.0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:toXScale="1.0" 
        android:fromYScale="0.0"
        android:toYScale="1.0"
        android:duration="200"
        android:pivotX="0"
        android:pivotY="10%"/>
</set>
在res的anim中新建文件scale_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <scale
        android:fromXScale="1.0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:toXScale="1.0" 
        android:fromYScale="1.0"
        android:toYScale="0.0"
        android:duration="200"
        android:pivotX="0"
        android:pivotY="10%"/>
</set>
3.设置对话框Activity的代码

public class DialogActivityTest extends Activity{
	
	@Override
	protected void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);		
		setContentView(R.layout.cs);
	}

	//设置触摸关闭
	@Override
	public boolean onTouchEvent(MotionEvent event){
		finish();
		return true;
	}
	
}
4.在AndroidMainifest.xml中Activity的声明中加入

<activity 
    android:name="com.example.applicationtext.TestActivity"
    android:theme="@style/MyDialogTopRight"
></activity>

整个过程的效果图:


扩展:自定义Activity的窗口背景

1.在res/drawable文件夹下新建float_act.xml文件,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ffffff" />
    <stroke android:width="3dp" android:color="#ff000000" />
    <corners android:radius="3dp" />
    <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
</shape>
2.背景设置代码

    <!-- float_act.xm为我们定义的窗口背景 ,这个不是必须的-->
    <item name="android:windowBackground">@drawable/float_act</item>
整个过程的效果图:


 Activity设置成对话框的东西大概就说到这里,里面有一些需要灵活的改动的,欢迎大家学习。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值