Dialog 之高仿IOS

打造Android上的iOS风格对话框:仿iOS弹出Dialog效果教程 本文还有配套的精品资源,点击获取 简介:在Android开发中实现仿iOS风格的Dialog,提供类似的用户体验。本文深入讲解了如何创建一个具有圆角背景、淡入淡出动画、简洁内容区域和扁平化按钮样式的自定义Dialog,以及如何通过属性设置、回调实现和展示方法来完成这一效果。开发者可利用相关代码和资源文件来学习如何在Android应用中应用这种对话框,以增强应用界面的吸引力和... 阅读详情
不得不说IOS系统的对话框确实漂亮 那么 我们就也来上一套

这里写图片描述
这里写图片描述

布局文件很简单   就是照着效果图自己贴  考虑到适配的问题  还需要自己做处理

public class DialogIos extends Dialog {

    private Context context;
    private String titleMessage;
    private String contontMessage;

    public DialogIos(Context context, String titleMessage,String contontMessage) {
        super(context,R.style.dialog_custom);
        this.context = context;
        this.titleMessage = titleMessage;
        this.contontMessage = contontMessage;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Window window = getWindow();
        window.setGravity(Gravity.CENTER);
        setContentView(R.layout.dialog_ios_layout);
        setCanceledOnTouchOutside(false);// 点击Dialog外部消失
        initView();
    }

    private void initView() {
        TextView diolog_title = (TextView) findViewById(R.id.diolog_title);
        diolog_title.setText(titleMessage);
        TextView diolog_contont = (TextView) findViewById(R.id.diolog_contont);
        diolog_contont.setText(contontMessage);
        TextView comfirm_choose = (TextView) findViewById(R.id.comfirm_choose);
        comfirm_choose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (null != onclickItemListen){
                    onclickItemListen.OnitemClick("1");
                }
            }
        });
        TextView cancle_choose = (TextView) findViewById(R.id.cancle_choose);
        cancle_choose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (null != onclickItemListen){
                    onclickItemListen.OnitemClick("0");
                }
            }
        });
    }

    public interface OnclickItemListen{
        void OnitemClick(String contont);
    }
    public OnclickItemListen onclickItemListen;
    public void SetOnCLickListen(OnclickItemListen onclickItemListen){
        this.onclickItemListen = onclickItemListen;
    }
}



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@drawable/button_write_back"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="70dp"
            android:gravity="center"
            android:orientation="vertical">

            <TextView
                android:id="@+id/diolog_title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="5dp"
                android:gravity="center"
                android:text="提示"
                android:textColor="@color/black"
                android:textSize="16dp" />

            <TextView
                android:id="@+id/diolog_contont"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="是否删除该地址"
                android:textColor="@color/black"
                android:textSize="14dp" />
        </LinearLayout>

        <View
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:background="@color/line_eee" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp">

            <TextView
                android:id="@+id/cancle_choose"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="取消"
                android:textColor="#00f"
                android:textSize="15dp" />

            <View
                android:layout_width="1px"
                android:layout_height="match_parent"
                android:background="@color/line_eee" />

            <TextView
                android:id="@+id/comfirm_choose"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="确定"
                android:textColor="@color/red_color"
                android:textSize="15dp" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>



    <!-- dialog样式 -->
    <style name="dialog_custom" parent="@android:style/Theme.Dialog">
        <item name="android:windowIsFloating">true</item>    <!--是否浮在界面上-->
        <item name="android:windowIsTranslucent">true</item> <!--是否半透明-->
        <item name="android:windowNoTitle">true</item>       <!--是否有标题-->
        <item name="android:windowBackground">@android:color/transparent</item> <!--窗口背景色透明-->
        <item name="android:backgroundDimEnabled">true</item> <!--背景是否模糊显示-->
    </style>

具体用法

 DialogIos dialogIos = new DialogIos(AddHbuyDynamicsActivity.this,"信息未完善","完善用户名、手机号、邮箱、头像、地区\n生日等才可以发帖哦~");
                                        dialogIos.SetOnCLickListen(new DialogIos.OnclickItemListen() {
                                            @Override
                                            public void OnitemClick(String contont) {
                                                if ("1".equals(contont)){
                                                    startActivity(new Intent(AddHbuyDynamicsActivity.this, HbuyUserDetailActivity.class));
                                                    dialogIos.cancel();
                                                }else {
                                                    dialogIos.cancel();
                                                }
                                            }
                                        });
                                        dialogIos.show();

写的很仓促 稍后会将他做一个完善 网上也有一个仿IOS的 SuperDialog 大家可以去看一下

自定义dialog仿ios风格的dialog 资源是关于仿ios风格的弹出dialog,还可以根据需求自己改。在此免费分享飞大家 立即下载

相关推荐

IOSDialog:一个高仿IOSDialog,IOS弹窗

IOSDialog 高仿IODDialog,ios弹窗,ios对话框 看下效果图: 使用方法 step1:在项目gradle根目录下添加 allprojects { repositories { jcenter() maven { url 'https://jitpack.io' } } } step2:在app的gradle根目录下添加 dependencies { compile 'com.github.anzhuojinjie:IOSDialog:1.0' } 具体使用只需要调用下面的方法,五个按钮对应五个效果图 public void btnClick(View view) { switch (view.getId()) { case R.id.btn1:

一个仿IOS风格的AlertDialog

实现思路继承Dialog,采用建造者模式,内部维持一个建造者Builder静态类来对对话框的标题,内容,积极按钮,消极按钮等部分进行设置,设置完成后使用create()方法来完成AlertDialog对象的创建,最终使用show()方法将对话框显示出来。效果图下面是一个仿ios风格的对话框效果图: 使用用法如下所示:AlertDialog.Builder builder = new AlertDi

lynnchurch的专栏 1662

ios dialog弹出对话框

类似Android中的AlertDialog,可以指定任意的View显示在Alert弹出框中,样式和ios UIAlertView样式一致

Android 仿iOS弹窗

仿iOS弹窗 一、先上效果图 二、GitHub地址 GitHub地址 https://github.com/MNXP/MyDialog 三、使用 1)基本使用 myDialog = new AlertDialog(this).builder(); myDialog.setGone().setTitle("提示").setMsg("仿iOS的弹窗").setNegativeButton("取...

weixin_34081595的博客 757

仿IOS弹出Dialog效果

仿IOS风格退出弹出框,满足多种需求,可隐藏标题、单个按钮显示等等。

iosAlertdialog

ios风格的AlertDialog

仿ios自定义Dialog显示

先看下效果图 首先定义一个Dialog public class AlertDialogUtils { private AlertDialogUtils() { } private static class ViewHolder { private static AlertDialogUtils INSTANCE = new AlertDi...

云夕雨兮 340

如何修复Windows卡在“正在准备Windows”的问题?这里有详细步骤

如何修复Windows卡在“正在准备Windows”的问题?这里有详细步骤。

wyxtx的博客 5659

android高仿ios控制中心,高仿ios控制中心安卓版

高仿ios控制中心安卓版是一款非常好用的安卓仿苹果手机控制中心的软件,能够让使用安卓手机的朋友们随时体验苹果手机的系统,操作简单方便,软件也是非常稳定的,大家可放心的下载使用,感兴趣的用户们就前来下载体验吧。高仿ios控制中心安卓版功能飞行模式:使用飞行模式,立即关闭您的Android设备上的蓝牙,Wi-Fi和手机连接。Wi-Fi:打开Wi-Fi浏览网页,流式音乐,下载电影等。蓝牙:通过控制中心C...

weixin_39801714的博客 3854

MATLAB机械臂轨迹规划:在关节空间中生成多项式轨迹以及 jtraj函数(内容超详细讲解)

matlab机器人仿真,关节空间多项式轨迹生成

qq_40969179的博客 1万+

Abaqus 单元与全局刚度矩阵导出实战指南:从INP修改到结果解析

本文提供了Abaqus中导出单元刚度矩阵和全局刚度矩阵的完整实战指南。通过详细步骤讲解INP文件修改、关键指令插入及结果文件解析,帮助工程师、研究人员和二次开发者深入理解有限元软件内核,实现理论验证、二次开发与深度问题调试。

k8s6orchestrator的博客 898

[控件] 高仿iOS样式Dialog

    由于android各个版本的系统Dialog样式都不一样,并且也不是特别好看,所以这里自己定制一套高仿iOS样式的android Dialog。让自己的代码具备两个平台的风格,并可以自由切换。  快速使用: Step 1. Add it in your root build.gradle at the end of repositories: allprojects {...

MapleShao 849

【项目分享】RailTracker: 火车票务数据采集与分析

从12306使用爬虫爬取火车站及车次信息、火车票价 通过本项目,我们将带领访问者手把手完成火车票数据采集、数据清洗、数据集成、可视化的一整个流程!

zhushatong的博客 3343

Android 高仿IOS底部Dialog对话框。

Android 高仿IOS底部Dialog对话框,网上也有很多源码。比较全的在这里 android实现 仿iphoneDialog实现类似于iphone对话框样式 Android仿IOS UIAlertView对话框 我这里只是做一个简单的实现,以后有时间再慢慢整理其他的样式(毕竟IOS做的效果真的很好看)。 先看看效果: 再来看代码, 首先,两个布局文件: activity_ma

三颗猴面包树 949

46、大数据助力SDN优化流量管理与控制器

本文探讨了大数据在软件定义网络(SDN)中的应用,重点分析了如何利用大数据技术优化SDN控制器的可扩展性和弹性。通过介绍SDN控制器的核心功能及其面临的挑战,提出了集中式、分布式、混合式和分层式控制器放置策略,并结合大数据分析系统架构与技术,详细阐述了在控制器放置优化、流聚合和备份路径识别等场景中的实际应用。文章还给出了大数据分析在SDN控制器优化中的操作流程与优势,展望了未来结合人工智能与物联网的发展方向,强调了数据安全与算法效率的重要性。

xx56789的博客 86

MATLAB基础应用精讲-【图像处理】GNN图神经网络(附python代码实现)

图神经网络由于其在处理非欧空间数据和复杂特征方面的优势,受到广泛关注并应用于推荐系统、知识图谱、交通道路分析等场景。图结构可描述复杂关系,如基因结构、通信网络、交通路线、社交网络等。图计算挖掘结构信息,但无法学习节点特征。神经网络在欧氏空间数据上表现优越,但无法直接应用于非欧氏空间的图数据。图神经网络结合图计算和神经网络优势,处理非欧氏空间数据及其复杂特征,应用于网络链接预测、推荐系统和交通道路分析等场景。实际应用中,图数据规模庞大,如百亿级节点、千亿级边,存储开销超过10TB。

qq_36130719的博客 1138

Android炫酷翻转Dialog及高仿苹果IOS的Dialog

简单的Android弹出Dialog效果(圆角)    最近一段时间工作挺忙的,一直想写一篇博文,总是被各种事情打破计划,终于这次利用这个周末来开始自己第一次的技术文章的写作,提前说明,本人还是个菜鸟,哈哈...由于技术有限,有写的不好的地方还请各位路过的高手多多指教。    说起自己的程序员生涯也挺不容易的,从大四自学入门以来也吃了好多苦头,但是听过别人说过一句话:“成年人的世界里没有容易二字”...

风清扬的博客 1265

18、公开可用的PPG数据库介绍

本文介绍了多个公开可用的PPG(光电容积描记)数据库,包括PPG-BP数据库、MIMIC II波形数据库、运动期间手腕PPG数据库以及指尖PPG与呼吸数据库等。这些数据库提供了丰富的生理信号数据,适用于动脉血压检测、呼吸频率估计、运动干扰去除以及基于PPG的生物特征识别等研究。每个数据库的数据来源、受试者信息、信号特点和下载方式均有详细介绍,并展示了如何利用这些数据库进行信号分析和算法评估。

salt的博客 388

Android开篇之高仿ios风格的自定义Dialog

一 概述       经常做项目的时候,你会发现。AlertDialog这个控件,我们也经常用到,比如说当你提交一些数据的时候啊,确定是否退出程序的时候啊等等场景,于是我们很自然的想到用到这个控件。当我们开发完成的时候,给测试测的时候。测试来一句“这什么鬼东西,这么丑。能不能做成和ios一样的效果”,宝宝心里苦啊,怪我咯.哎没办法,谁让google自带的效果都是很丑呢(现在最新系统自带的dial

gf的博客 454

使用 Python 构建 Reddit 热帖爬虫:抓取热门讨论帖和评论

在现代互联网中,Reddit 被誉为全球最大、最活跃的讨论平台之一,汇聚了各种主题的帖子、评论和社交互动。因此,抓取 Reddit 上的热门帖子和评论可以为我们提供一个丰富的文本数据源,可以用于情感分析、话题建模、趋势分析等应用。Reddit 提供了官方的 API,可以让开发者获取包括帖子、评论、用户信息等在内的各种数据。我们可以结合上述方法,抓取多个热门帖子,并将每个帖子的标题、作者、发布时间和评论内容保存到一个数据结构中。每个帖子的对象包含了丰富的信息,如标题、内容、发布时间、作者等。

2201_76125261的博客 381

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

高仿IOS---Dialog(底部式)

activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layou

全干工程师 4765

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

高仿IOS---Dialog(中间式)

activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layou

全干工程师 1863

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WheelView 实现 日期和时间同时选择

项目需要,整理一个同时选择日期和时间的控件。 效果图: 这里直接写成一个Dialog类,便于集成到项目中。下面直接贴出主要实现代码 DateTimeDialog:public class DateTimeDialog { private Context context; private Dialog dialog; private static int START_YEAR

发强 3920

高仿iOS的BlurDialog

文/BlackSwift(简书作者) 原文链接:http://www.jianshu.com/p/1e2d68183c3c 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。 本文主要讨论Dialog的blur背景与泛谈window中的各种view。 Github上有许多仿iOS的dialog,但是都没有让背景模糊,第三方的view太坑,不如自己对着iOS模拟器的图与动

richie0006的博客 1254

高仿IOS 提示框

一个简单的仿IOS 对话框, 感觉很好用 记录下来  往后可以直接转移到别的项目中使用。 先来看下效果图: 效果简单明了,感觉ios 的对话框就要比安卓原生的好看一些,下面附上代码: public class AlertDialog extends Dialog { public AlertDialog(Context context) { super(context);

qq_34157567的博客 587

Android高仿IOS和QQ的弹出对话框

很多时候我们的程序中需要用到有弧形元素的控件,当然我们着先肯定会想到用图片去遮盖,例如我们要一个圆形的图片,我们可以在原有图片的基础上加上一个中间为空的图片。这样就可以获得圆形图片的效果。不过,这样方法一看就可以水平比较低的。因为要用这样的一张图片,势必消耗资源。

大鱼 4668
上一篇: 安卓 使用字体包 自定义字体
下一篇: Java汉字转换为拼音
我有名有姓
博客等级 码龄10年 1粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值