Android仿IOS底部弹出对话框

在Android开发过程中,常常会因为感觉Android自带的Dialog的样式很丑,项目开发过程中会影响整体效果,会使得开发过程很是忧伤....(话唠时间结束!)
本文我将介绍一款开源的Dialog仿IOS底部弹窗效果IOS_Dialog_Library的使用。我将通过几个简单的示例介绍IOS_Dialog_Library.zip的使用方法。

1、IOS_Dialog_Library是开源的Dialog框架,所以首先你得下载IOS_Dialog_Library.zip包,并作为Library引入你的项目(引入过程省略)。
IOS_Dialog_Library下载地址:http://xiazai.jb51.net/201701/yuanma/iOSDialogLibrary(jb51.net).rar

2、在创建完项目和引用完 IOS_Dialog_Library.zip 之后,开始编写代码。
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:layout_height="match_parent"
  tools:context=".MainActivity"
  android:orientation="vertical"> 

  <Button
    android:id="@+id/btn1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="消息" />
  <Button
    android:id="@+id/btn2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="图片" />
  <Button
    android:id="@+id/btn3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="列表Item" />
  <Button
    android:id="@+id/btn4"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="退出 弹窗" />
  <Button
    android:id="@+id/btn5"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="错误提示窗口" /> 

</LinearLayout>

上面主要是5个Button,即演示五种不同的IOS_Dialog_Library的使用方法。

MainActivity.java

package example.com.showdialog; 

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; 

import zhangphil.iosdialog.widget.ActionSheetDialog;
import zhangphil.iosdialog.widget.AlertDialog; 

/**
 * package:example.com.showdialog
 * name:MainActivity.java
 * Write by Jimmy.li
 * Date:2016/4/24 16:39
 */
public class MainActivity extends Activity implements View.OnClickListener {
  private Button btn1, btn2, btn3, btn4, btn5; 

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
  } 

  private void initView() {
    btn1 = (Button) findViewById(R.id.btn1);
    btn2 = (Button) findViewById(R.id.btn2);
    btn3 = (Button) findViewById(R.id.btn3);
    btn4 = (Button) findViewById(R.id.btn4);
    btn5 = (Button) findViewById(R.id.btn5);
    btn1.setOnClickListener(this);
    btn2.setOnClickListener(this);
    btn3.setOnClickListener(this);
    btn4.setOnClickListener(this);
    btn5.setOnClickListener(this);
  } 

  @Override
  public void onClick(View v) {
    switch (v.getId()) {
      case R.id.btn1:
        new ActionSheetDialog(MainActivity.this)
            .builder()
            .setTitle("清空消息列表后,聊天记录依然保留,确定要清空消息列表?")
            .setCancelable(true)
            .setCanceledOnTouchOutside(true)
            .addSheetItem("清空消息列表", ActionSheetDialog.SheetItemColor.Red
                , new ActionSheetDialog.OnSheetItemClickListener() {
              @Override
              public void onClick(int which) {
                //填写事件
              }
            }).show();
        break;
      case R.id.btn2:
        new ActionSheetDialog(MainActivity.this)
            .builder()
            .setCancelable(true)
            .setCanceledOnTouchOutside(true)
            .addSheetItem("发送给好友",
                ActionSheetDialog.SheetItemColor.Blue,
                new ActionSheetDialog.OnSheetItemClickListener() {
                  @Override
                  public void onClick(int which) {
                    //填写事件
                  }
                })
            .addSheetItem("转载到空间相册",
                ActionSheetDialog.SheetItemColor.Blue,
                new ActionSheetDialog.OnSheetItemClickListener() {
                  @Override
                  public void onClick(int which) {
                    //填写事件
                  }
                })
            .addSheetItem("上传到群相册",
                ActionSheetDialog.SheetItemColor.Blue,
                new ActionSheetDialog.OnSheetItemClickListener() {
                  @Override
                  public void onClick(int which) {
                    //填写事件
                  }
                })
            .addSheetItem("保存到手机",
                ActionSheetDialog.SheetItemColor.Blue,
                new ActionSheetDialog.OnSheetItemClickListener() {
                  @Override
                  public void onClick(int which) {
                    //填写事件
                  }
                }).show();
        break;
      case R.id.btn3:
        new ActionSheetDialog(MainActivity.this)
            .builder()
            .setTitle("好友列表")
            .setCancelable(true)
            .setCanceledOnTouchOutside(true)
            .addSheetItem("删除好友", ActionSheetDialog.SheetItemColor.Red
                , new ActionSheetDialog.OnSheetItemClickListener() {
              @Override
              public void onClick(int which) {
                //填写事件
              }
            })
            .addSheetItem("增加好友", ActionSheetDialog.SheetItemColor.Blue
                , new ActionSheetDialog.OnSheetItemClickListener() {
              @Override
              public void onClick(int which) {
                //填写事件
              }
            })
            .addSheetItem("备注", ActionSheetDialog.SheetItemColor.Blue
                , new ActionSheetDialog.OnSheetItemClickListener() {
              @Override
              public void onClick(int which) {
                //填写事件
              }
            }).show();
        break;
      case R.id.btn4:
        new AlertDialog(MainActivity.this)
            .builder()
            .setTitle("退出当前帐号")
            .setMsg("再连续登陆天,就可变身为QQ达人。退出QQ可能会使你现有记录归零,确定退出?")
            .setPositiveButton("确认退出", new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                //填写事件
              }
            })
            .setNegativeButton("取消", new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                //填写事件
              }
            }).show();
        break;
      case R.id.btn5:
        new AlertDialog(MainActivity.this)
            .builder()
            .setTitle("错误信息")
            .setMsg("你的手机sd卡出现问题,建议删除不需要的文件,否则收不到图片和视频等打文件")
            .setPositiveButton("确定", new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                //填写事件
              }
            }).show();
        break;
    }
  }
}

java代码主要是简要的说明了IOS_Dialog_Library的五种不同的实现方法及效果。可以在注释部分写点击事件。

3、运行效果图

         

运行效果图1                                   点击"消息"示意图2

         

点击"图片"效果图3                              点击"列表Item"效果图4

         

点击"退出弹窗"效果图5                           点击"错误提示窗口"图6

源码下载地址:http://xiazai.jb51.net/201701/yuanma/AndroidshowDialog(jb51.net).rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android实现类似iOS风格的对话框实例代码

    分享一个简单的常用的对话框类,按照国际惯例,先上图 布局简单,先上布局.一个标题,一个内容,两个按钮 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout an

  • android底部弹出iOS7风格对话选项框(QQ对话框)--第三方开源之IOS_Dialog_Library

    先给大家展示下效果图,喜欢的朋友可以下载源码哦. 完成这个效果的是使用了 IOS_Dialog_Library 下载地址:http://xiazai.jb51.net/201509/yuanma/IOS_Dialog_Library(jb51.net) 下载后导入到Eclipse中,然后作为Library引入到自己的工程中,直接作为第三方控件使用. 测试代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a

  • Android仿IOS底部弹出对话框

    在Android开发过程中,常常会因为感觉Android自带的Dialog的样式很丑,项目开发过程中会影响整体效果,会使得开发过程很是忧伤....(话唠时间结束!) 本文我将介绍一款开源的Dialog仿IOS底部弹窗效果IOS_Dialog_Library的使用.我将通过几个简单的示例介绍IOS_Dialog_Library.zip的使用方法. 1.IOS_Dialog_Library是开源的Dialog框架,所以首先你得下载IOS_Dialog_Library.zip包,并作为Library引

  • Android 仿苹果底部弹出Dialog

    style文件 <style name="ActionSheetDialogStyle" parent="@android:style/Theme.Dialog"> <!-- 背景透明 --> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:wind

  • Android 之BottomsheetDialogFragment仿抖音评论底部弹出对话框效果(实例代码)

    实现的效果图: 自定义Fragment继承BottomSheetDialogFragment 重写它的三个方法: onCreateDialog() onCreateView() onStart() 他们的执行顺序是从上到下 import android.app.Dialog; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable;

  • Android仿微信进度弹出框的实现方法

    MainActivity: package com.ruru.dialogproject; import android.app.Activity; import android.os.Bundle; import android.view.View; public class MainActivity extends Activity implements Runnable { LoadingDialog dialog; @Override protected void onCreate(Bu

  • Android实现从底部弹出的Dialog的实例代码

    1.点击按钮(按钮的点击事件在此不在赘述,接下来直接写底部弹框的实现方式和样式的设计) 2.弹框 Dialog dialog = new Dialog(context, R.style.ActionSheetDialogStyle); //填充对话框的布局 inflate = LayoutInflater.from(context).inflate(R.layout.dialog_layout, null); // setCancelable(iscancelable);//点击外部不可dism

  • Android仿Iphone屏幕底部弹出半透明PopupWindow效果

    本文实例为大家分享了Android仿Iphone屏幕底部弹出效果的具体代码,供大家参考,具体内容如下 main.xml如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent&

  • 浅析Android Service中实现弹出对话框的坑

    一.手机版本问题,大多数文章没有涉及这个点,导致他们的代码并无法正常使用 M版本以上需要使用的Type--> TYPE_APPLICATION_OVERLAY AlertDialog.Builder builder=new AlertDialog.Builder(getApplicationContext()); builder.setTitle("提示"); builder.setMessage("service弹框"); builder.setNegati

  • Android实现从底部弹出的Dialog示例(一)

    一.概述 先给大家看一下效果图: 点击中间的显示弹框按钮,从底部弹出来一个对话框,用户可以点击拍照或者从相册选择进行相应的操作,下面看看怎么实现. 二.代码实现 主页面布局文件,很简单,一个按钮,响应点击事件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

  • PopupWindow仿微信浮层弹出框效果

    最近公司项目需要实现类似微信的浮层弹出框.研究发现是用PopupWindow实现的.而且可以自定义位置以及出现和退出时的动画,由于太晚了就不实现动画了,需要得同学请自己研究下.由于本人新手其中的不足和缺点请见谅. 代码如下: 首先是定义顶部按钮的main.xml文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.an

  • Android实现微博菜单弹出效果

    先上Android仿微博菜单弹出效果图,这个截图不是很流畅,大家可以下载apk试一下. 说一下实现思路: 1.截取当前窗口,对图片做高斯模糊处理,将处理后的图片做popupwindow的背景图片: 2.创建popupwindow,完成布局,这儿要注意:View的移动范围是由parent的大小决定的,就是只能在parent的范围内移动: 3.给买个View添加进入动画,每个比前一个延期50ms播放动画,关闭窗口时相反: 4.为View的动画添加回弹插值器: MoreWindow.java窗口 pa

随机推荐