自定义Dialog的详细步骤

自定义Dialog的详细步骤,第1张

第一步: 给Dialog设置一个风格主题: 无边框全透明背景

在res->valus->styles.xml 下新建一个styles

    <style name="dialog" parent="android:style/Theme.Dialog">

            <!--背景颜色及和透明程度-->

            <item name="android:windowBackground">@android:color/transparent</item>

            <!--是否去除标题 -->

            <item name="android:windowNoTitle">true</item>

            <!--是否去除边框-->

            <item name="android:windowFrame">@null</item>

            <!--是否浮现在activity之上  -->

            <item name="android:windowIsFloating">false</item>

            <!--背景是否模糊-->

            <item name="android:backgroundDimEnabled">false</item>

        </style>

第二步:新建自定义view 类 继承Dialog,在构造方法中引用刚才写好的styles(粗体部分)

public class MyDialog extends Dialog {

     public LoginRestltDialog(@NonNull Context context) {

                 //引用样式

                   super(context, R.style.dialog )

               }

     @Override

      protected void onCreate(Bundle savedInstanceState) {

               super.onCreate(savedInstanceState)

               //引入布局

                setContentView(R.layout.dialog)

    }

   //定义其他需要的方法

}

第三步:创建布局

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:background="#11ffffff">

    <LinearLayout

        android:layout_width="260dp"

        android:layout_height="wrap_content"

        android:layout_centerInParent="true"

        android:background="@drawable/dialog_share"

        android:orientation="vertical">

        <TextView

            android:id="@+id/title"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_gravity="center"

            android:layout_margin="15dp"

            android:gravity="center"

            android:text="消息提示"

            android:textColor="#38ADFF"

            android:textSize="16sp" />

        <TextView

            android:id="@+id/message"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_marginLeft="20dp"

            android:layout_marginRight="20dp"

            android:text="提示消息" />

        <View

            android:layout_width="match_parent"

            android:layout_height="1px"

            android:layout_marginTop="15dp"

            android:background="#E4E4E4" />

        <LinearLayout

            android:layout_width="match_parent"

            android:layout_height="40dp"

            android:orientation="horizontal">

            <Button

                android:id="@+id/no"

                android:layout_width="0dp"

                android:layout_height="match_parent"

                android:layout_marginLeft="10dp"

                android:layout_weight="1"

                android:background="@null"

                android:gravity="center"

                android:singleLine="true"

                android:text="No"

                android:textColor="#7D7D7D"

                android:textSize="16sp" />

            <View

                android:layout_width="1px"

                android:layout_height="match_parent"

                android:background="#E4E4E4" />

            <Button

                android:id="@+id/yes"

                android:layout_width="0dp"

                android:layout_height="match_parent"

                android:layout_marginRight="10dp"

                android:layout_weight="1"

                android:background="@null"

                android:gravity="center"

                android:singleLine="true"

                android:text="Yes"

                android:textColor="#38ADFF"

                android:textSize="16sp" />

        </LinearLayout>

    </LinearLayout>

</RelativeLayout>

第四步:定义dialog的背景框

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 

    <solid android:color="#ffffff" /> 

    <stroke 

        android:width="0.8dp" 

        android:color="#ffffff" /> 

    <!-- 圆角 --> 

    <corners android:radius="8dp" /> 

</shape>

最后在需要的地方调用即可

//定义一个电话对话框

public void CallDialog(final Context ctx,final String msg) {

AlertDialog.Builder builder = new AlertDialog.Builder(ctx).setMessage(msg)

//builder.setTitle(Strings.getString(R.string.call_us_Button))

builder.setNegativeButton(getString(R.string.cancel),new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

return

}

})

builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

HashMap<String, String>analytics = new HashMap<String, String>()

analytics.put("title", fb.getName())

MobclickAgent.onEvent(context, "storetel",analytics)

try {

Intent intent = new Intent()

intent.setAction(Intent.ACTION_CALL)

intent.setData(Uri.parse("tel:" + msg))

startActivity(intent)

if(!wb.isCollect(fb.getId(),WbcDb.MYORDERNAME)){

if(map1 != null){

fb.setImagethumb_too(new BitmapDrawable(map1))

}

if(wb.insertCollectOne(fb,WbcDb.MYORDERNAME)){

Toast.makeText(context, "已经添加到我的订单", 1).show()

}else{

Toast.makeText(context, "添加到我的订单失败", 1).show()

}

// startActivity(new Intent(context,CollectActivity.class))

}else{

Util.System("我的订单里边有了")

}

} catch (Exception e) {

// LogUtil.d("PostActivity", e.toString())

e.printStackTrace()

}

}

})

builder.create().show()

}

给你一个方法,你稍微修改一下,以后要用对话框就用这个末班


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11886245.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存