AlertDialog的使用及全屏显示

本文详细介绍了Android中如何使用AlertDialog,并提供了一种实现AlertDialog全屏显示的方法。通过实例代码,展示了创建对话框、设置内容、按钮事件处理以及调整布局以达到全屏效果的全过程,帮助开发者更好地在应用中利用AlertDialog。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//Gionee <zhangjinbiao> <2016-12-14> modify for <41249> begin
     static AlertDialog mRefreshDialog;
    
    private AlertDialog showRefreshDialog(){
        final FrameLayout frameLayout = (FrameLayout) getLayoutInflater().inflate(R.layout.agenda_dialog_refresh, null);
        ImageView iv = (ImageView) (frameLayout.findViewById(R.id.iv));
        Animation rotate = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.agenda_dialog_refresh_rotate);
        Interpolator interpolator = new LinearInterpolator();//匀速插值
        if(null != rotate){
            rotate.setInterpolator(interpolator);
            if(iv != null){
                iv.startAnimation(rotate);
            }
        }
      //为子窗口传context的时候,必须穿组件的context,不能传applicationContext,因为子窗口的添加需要使用组件的token。而applicationContext是没有token的
 AlertDialog dialog = new AlertDialog(AgendaActivity.this){ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(frameLayout); //设置全屏 getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
               //使用全透明背景,如果不设置背景,或者把背景设为null,会是不透明黑色的背景。因为添加的窗口默认是不透明的,没有背景就是黑色。
 getWindow().setBackgroundDrawableResource(R.color.agenda_refresh_dialog_bg); } }; dialog.setCancelable(false);//点击返回键dialog不消失 dialog.show(); return dialog; } //Gionee <zhangjinbiao> <2016-12-14> modify for <41249> end


agenda_dialog_refresh_rotate.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
    android:fromDegrees="0"
    android:toDegrees="359"
    android:duration="500"
    android:repeatCount="-1"
    android:pivotX="50%"
    android:pivotY="50%" />
</set>

agenda_dialog_refresh.xml

注意:使用RelativeLayout或者LinearLayout的话,子控件的layout_gravity属性的center值不能使控件到达布局中心。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/agenda_refresh_dialog_bg">
    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/amigo_spinner_large_light"
        android:layout_gravity="center"
        />

</FrameLayout>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值