欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android仿IOS底部弹出对话框

程序员文章站 2023-12-20 19:41:22
在android开发过程中,常常会因为感觉android自带的dialog的样式很丑,项目开发过程中会影响整体效果,会使得开发过程很是忧伤....(话唠时间结束!) 本文...

在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、运行效果图

Android仿IOS底部弹出对话框         Android仿IOS底部弹出对话框

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

Android仿IOS底部弹出对话框         Android仿IOS底部弹出对话框

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

Android仿IOS底部弹出对话框         Android仿IOS底部弹出对话框

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

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

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

上一篇:

下一篇: