圆角的Dialog

版权声明:本文为luoyong原创文章,转载请注明出处!https://blog.csdn.net/luoyong_blog https://blog.csdn.net/luoyong_blog/article/details/84257178

这是项目中用到的圆角的dialog,记录于此。


import android.app.Dialog;
import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

/**
 * Created by LY on 2016/5/18.
 * 圆角的dialog
 */
public class RoundCornerDialog extends Dialog {

    private static int default_width = 160; //默认宽度
    private static int default_height = 120;//默认高度

    public RoundCornerDialog(Context context, View layout, int style) {
        this(context, default_width, default_height, layout, style);
    }


    public RoundCornerDialog(Context context, int width, int height, View layout, int style) {
        super(context, style);
        setContentView(layout);
        Window window = getWindow();
        WindowManager.LayoutParams params = window.getAttributes();
        params.gravity = Gravity.CENTER;
        window.setAttributes(params);
    }

    //圆角的dialog样式
//    <style name="RoundCornerDialog" 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">@android:color/transparent</item>
//    <item name="android:windowBackground">@android:color/transparent</item>
//    <item name="android:backgroundDimEnabled">true</item>
//    <item name="android:backgroundDimAmount">0.6</item>
//    </style>


}

项目中使用:

  /**
     * 展示加载中的dialog
     */
     private RoundCornerDialog roundCornerDialog_loading;
    private void showLoadingDialog() {
        View view = View.inflate(context, R.layout.dialog_loading, null);
        roundCornerDialog_loading = new RoundCornerDialog(context, 0, 0, view, R.style.RoundCornerDialog);
        roundCornerDialog_loading.show();
        roundCornerDialog_loading.setCanceledOnTouchOutside(false);// 设置点击屏幕Dialog不消失
        roundCornerDialog_loading.setOnKeyListener(keylistener);//设置点击返回键Dialog消失,并关闭此Activity

        ImageView iv_loading = (ImageView) view.findViewById(R.id.iv_loading);
        Glide.with(context)
                .load(R.drawable.loading1)
                .asGif()
                .into(iv_loading);
    }

    DialogInterface.OnKeyListener keylistener = new DialogInterface.OnKeyListener() {
        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
                if (roundCornerDialog_loading != null) {
                    roundCornerDialog_loading.dismiss();
                    backPage();
                }
                return true;
            } else {
                return false;
            }
        }
    };

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">



    <LinearLayout
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:background="@drawable/shape_circle_corner_gray_apha"
        android:gravity="center"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/iv_loading"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_gravity="center"
            android:src="@drawable/loading_default"/>
    </LinearLayout>

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!-- 填充的颜色 -->
    <solid android:color="#d5d5d5" />
    <!-- 设置按钮的四个角为弧形 -->
    <!-- android:radius 弧形的半径 -->
    <corners android:radius="16dip" />

    <!-- padding:Button里面的文字与Button边界的间隔 -->
    <!--<padding
        android:left="10dp"
        android:top="10dp"
        android:right="10dp"
        android:bottom="10dp"/>-->

</shape>

猜你喜欢

转载自blog.csdn.net/luoyong_blog/article/details/84257178