美文网首页
自定义progressdialog

自定义progressdialog

作者: 海内灬存知己 | 来源:发表于2021-05-07 10:35 被阅读0次

    1:继承Dialog,加载布局

    public class MyDialog extends Dialog implements View.OnClickListener {
    
        @BindView(R.id.tv_title)
        TextView tvTitle;
        @BindView(R.id.tv_msg)
        TextView tvMsg;
        @BindView(R.id.iv_close)
        ImageView ivClose;
    
        public MyDialog (Context context) {
            this(context, 0);
        }
    
        public MyDialog (Context context, int theme) {
            super(context, theme);
            View view = LayoutInflater.from(getContext()).inflate(R.layout.vpn_dialog, null);
            ButterKnife.bind(this, view);
            setContentView(view);
            ivClose.setOnClickListener(this);
        }
    
    
        public void setTitle(CharSequence title) {
            if (tvTitle == null) {
                return;
            }
            tvTitle.setText(title);
        }
    
        public void setMessage(CharSequence message) {
            if (tvMsg == null) {
                return;
            }
            tvMsg.setText(message);
        }
    
        @Override
        public void onClick(View view) {
            this.cancel();
        }
    
    }
    
    

    2:布局设置

    
    <RelativeLayout 
    <!--正常如果这样写是无法对dialog大小进行控制的,需要自己设置背景,还有style-->
    android:paddingRight="60dp" 
    android:paddingLeft="60dp" 
    android:orientation="vertical" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android">
    
    <RelativeLayout 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:background="@drawable/oval_white">
    
    <TextView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:textSize="18sp" 
    android:textColor="@color/black" 
    android:layout_marginTop="15dp" 
    android:layout_marginLeft="15dp" 
    android:id="@+id/tv_title"/>
    
    <LinearLayout 
    android:orientation="horizontal" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:layout_marginTop="20dp" 
    android:layout_marginLeft="15dp" 
    android:layout_marginBottom="20dp" 
    android:layout_below="@id/tv_title">
    
    <ProgressBar 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"/>
    
    <TextView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:textSize="14sp" 
    android:textColor="@color/darkgrey" 
    android:layout_marginLeft="18dp" 
    android:id="@+id/tv_msg" 
    android:layout_gravity="center_vertical"/>
    
    </LinearLayout>
    
    <ImageView 
    android:layout_height="30dp" 
    android:layout_width="30dp" 
    android:id="@+id/iv_close" 
    android:src="@drawable/close" 
    android:layout_alignParentRight="true"/>
    
    </RelativeLayout>
    
    </RelativeLayout>
    

    3:style设置,透明以后才可以自定义dialog大小

     <style name="myDialogStyle" parent="ThemeOverlay.AppCompat.Dialog">
            <item name="android:windowFrame">@null</item>
            <!-- 是否有边框 -->
            <item name="android:windowNoTitle">true</item>
            <!-- 是否有标题 -->
            <item name="android:windowBackground">@android:color/transparent</item>
            <!-- 背景颜色设置为透明 -->
            <item name="android:windowIsFloating">true</item>
            <!-- 是否是浮动 -->
            <item name="android:windowContentOverlay">@null</item>
        </style>
    

    4:应用

    MyDialog myDialog=new MyDialog(this,R.style.myDialogStyle);
    myDialog.setTitle("123");
    myDialog.setMessage("456");
    myDialog.show();
    

    相关文章

      网友评论

          本文标题:自定义progressdialog

          本文链接:https://www.haomeiwen.com/subject/bqdsdltx.html