美文网首页安卓
【Android】仿IOS自定义Dialog简易Demo

【Android】仿IOS自定义Dialog简易Demo

作者: 1dcb8995fdce | 来源:发表于2017-01-03 17:04 被阅读2306次

Android框架自带的Dialog难看,想要ios效果的Dialog对话框,十分简单,只需以下几步即可,效果如图:

CustomDialog

1、首先自定义Dialog,其代码主要是添加1个可以传样式参数的构造方法:

public class CustomDialog extends Dialog {
private Context context;
private int resId;
public CustomDialog(Context context, int resLayout) {
this(context,0,0);
}
public CustomDialog(Context context, int themeResId, int resLayout) {
super(context, themeResId);
this.context = context;
this.resId = resLayout;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(resId);
}
}

2、然后是自定义Dialog的xml布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="275dp"
android:layout_height="160dp"
android:background="@drawable/shape_dialog_ios"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:gravity="center"
android:text="你确认要变成大神吗?"
android:textColor="#666666"
android:textSize="18sp"/>
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="#acacac"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<TextView
android:id="@+id/cancel"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="取消"
android:textColor="#666666"
android:textSize="15sp"/>
<TextView
android:id="@+id/ok"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="确认"
android:textColor="#fe6000"
android:textSize="15sp"/>
</LinearLayout>
</LinearLayout>

3、下面设置一下布局中Dialog对话框的四个角为圆角来模仿IOS对话框,也就是布局中的背景shape_dialog_ios文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="10dp" />
<solid android:color="#FFFFFF" />
</shape>

4、主要是设置样式,才可以更像IOS对话框:

<!--CustomDialog-->
<style name="customDialog" parent="Theme.AppCompat.Dialog">
<item name="android:windowFrame">@null</item><!--取消默认Dialog的windowFrame框-->
<item name="android:windowNoTitle">true</item><!--设置无标题Dialog-->
<item name="android:backgroundDimEnabled">true</item><!--是否四周变暗-->
<item name="android:windowIsFloating">true</item><!-- 是否悬浮在activity上 -->
<item name="android:windowContentOverlay">@null</item><!-- 取消默认ContentOverlay背景 -->
<item name="android:windowBackground">@android:color/transparent</item><!--取消window默认背景 不然四角会有黑影-->
</style>

5、最后就是在Activity中应用自定义好的Android Dialog对话框了:

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void clickDialogIos(View v){
final CustomDialog dialog=new CustomDialog(this,R.style.customDialog,R.layout.dialog);
dialog.show();
TextView tvCancel = (TextView) dialog.findViewById(R.id.cancel);
TextView tvOk = (TextView) dialog.findViewById(R.id.ok);
tvOk.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
dialog.dismiss();
Toast.makeText(getApplicationContext(), "恭喜你!你是大神了!", Toast.LENGTH_SHORT).show();
}
});
tvCancel.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
}
}

以上是比较基础的自定义Dialog的Demo,如想增加功能可在此基础上扩展。

相关文章

  • 【Android】仿IOS自定义Dialog简易Demo

    Android框架自带的Dialog难看,想要ios效果的Dialog对话框,十分简单,只需以下几步即可,效果如图...

  • 自定义Dialog

    仿IOS自定义的Dialog: 1、Util帮助类创建dialog 2、布局文件 :loading_dialog....

  • Android圆角对话框Dialog

    需求:模仿iOS样式Dialog对话框。 自定义Dialog 核心代码: Dialog样式: Dialog布局文件...

  • Android仿IOS底部Dialog

    前言 最近接到一个需求要实现一个类IOS的底部dialog,当时我就要日了狗了,项目上都固定了使用的是Androi...

  • Dialog

    自定义一些常见的Dialog效果,居中显示、顶部显示、仿IOS版淘宝、回弹效果、宽度和高度占屏比等,先看效果。 一...

  • Android Dialog 实现仿iOS UIActionSh

    啊哈 补个GIF 感谢Coding_css的建议 拍照、和相册设定为动态加载。。底部cancel设定为固定视图 首...

  • Android仿ios的自定义dialog,loading和to

    之前写的三篇自定义文章如下: https://www.jianshu.com/p/b5f465003ab4 htt...

  • Dialog

    安卓dialog的使用+如何自定义dialog自定义Dialog自定义Dialog 自定义

  • android仿又到精品课Kotlin版、矢量动画实践、电商ap

    Android精选源码 Android 自定义dialog实现年龄选择输入 Android创建抗锯齿透明背景圆角图...

  • iOS-Demo相关

    Demo文集涵盖实用性Demo、外加高仿程序. 1.iOS之选择汽车品牌小demo2.个人demo仿斗鱼、喵播、自...

网友评论

  • 韶华逝:您这个文言是没有办法自定义的吧!我再代码中想自己动态设定总出问题!

本文标题:【Android】仿IOS自定义Dialog简易Demo

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