高仿IOS的Android弹出框_IOS

先看一下效果图,不过这是网上的图片。

效果不错,就借此拿来与大伙分享分享。
github源码地址:https://github.com/saiwu-bigkoo/Android-AlertView.
1.怎么用:添加依赖。

compile 'com.bigkoo:alertview:1.0.3'

2.实例demo(大家可以根据需要来选择自己需要的框框)。

package com.example.my.androidalertview;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.Toast;

import com.bigkoo.alertview.AlertView;
import com.bigkoo.alertview.OnDismissListener;
import com.bigkoo.alertview.OnItemClickListener;

/**
 * 精仿iOSAlertViewController控件Demo
 */
public class MainActivity extends Activity implements OnItemClickListener, OnDismissListener {

  private AlertView mAlertView;//避免创建重复View,先创建View,然后需要的时候show出来,推荐这个做法
  private AlertView mAlertViewExt;//窗口拓展例子
  private EditText etName;//拓展View内容
  private InputMethodManager imm;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    mAlertView = new AlertView("标题", "内容", "取消", new String[]{"确定"}, null, this, AlertView.Style.Alert, this).setCancelable(true).setOnDismissListener(this);
    //拓展窗口
    mAlertViewExt = new AlertView("提示", "请完善你的个人资料!", "取消", null, new String[]{"完成"}, this, AlertView.Style.Alert, this);
    ViewGroup extView = (ViewGroup) LayoutInflater.from(this).inflate(R.layout.alertext_form, null);
    etName = (EditText) extView.findViewById(R.id.etName);
    etName.setOnFocusChangeListener(new View.OnFocusChangeListener() {
      @Override
      public void onFocusChange(View view, boolean focus) {
        //输入框出来则往上移动
        boolean isOpen = imm.isActive();
        mAlertViewExt.setMarginBottom(isOpen && focus ? 120 : 0);
        System.out.println(isOpen);
      }
    });
    mAlertViewExt.addExtView(extView);
  }

  public void alertShow1(View view) {
    mAlertView.show();
  }

  public void alertShow2(View view) {
    new AlertView("标题", "内容", null, new String[]{"确定"}, null, this, AlertView.Style.Alert, this).show();
  }

  public void alertShow3(View view) {
    new AlertView(null, null, null, new String[]{"高亮按钮1", "高亮按钮2", "高亮按钮3"},
        new String[]{"其他按钮1", "其他按钮2", "其他按钮3", "其他按钮4", "其他按钮5", "其他按钮6",
            "其他按钮7", "其他按钮8", "其他按钮9", "其他按钮10", "其他按钮11", "其他按钮12"},
        this, AlertView.Style.Alert, this).show();
  }

  public void alertShow4(View view) {
    new AlertView("标题", null, "取消", new String[]{"高亮按钮1"}, new String[]{"其他按钮1", "其他按钮2", "其他按钮3"}, this, AlertView.Style.ActionSheet, this).show();
  }

  public void alertShow5(View view) {
    new AlertView("标题", "内容", "取消", null, null, this, AlertView.Style.ActionSheet, this).setCancelable(true).show();
  }

  public void alertShow6(View view) {
    new AlertView("上传头像", null, "取消", null,
        new String[]{"拍照", "从相册中选择"},
        this, AlertView.Style.ActionSheet, this).show();
  }

  public void alertShowExt(View view) {
    mAlertViewExt.show();
  }

  private void closeKeyboard() {
    //关闭软键盘
    imm.hideSoftInputFromWindow(etName.getWindowToken(), 0);
    //恢复位置
    mAlertViewExt.setMarginBottom(0);
  }

  @Override
  public void onItemClick(Object o, int position) {
    closeKeyboard();
    //判断是否是拓展窗口View,而且点击的是非取消按钮
    if (o == mAlertViewExt && position != AlertView.CANCELPOSITION) {
      String name = etName.getText().toString();
      if (name.isEmpty()) {
        Toast.makeText(this, "啥都没填呢", Toast.LENGTH_SHORT).show();
      } else {
        Toast.makeText(this, "hello," + name, Toast.LENGTH_SHORT).show();
      }

      return;
    }
    Toast.makeText(this, "点击了第" + position + "个", Toast.LENGTH_SHORT).show();
  }

  @Override
  public void onDismiss(Object o) {
    closeKeyboard();
    Toast.makeText(this, "消失了", Toast.LENGTH_SHORT).show();
  }

  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
      if (mAlertView != null && mAlertView.isShowing()) {
        mAlertView.dismiss();
        return false;
      }
    }

    return super.onKeyDown(keyCode, event);

  }
}

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:orientation="vertical"
  android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  android:paddingBottom="@dimen/activity_vertical_margin">

  <Button android:text="hey,alert !!!click here~~~" android:layout_width="match_parent"
    android:layout_marginTop="5dp"
    android:layout_height="50dp"
    android:onClick="alertShow1"/>
  <Button android:text="hey,alert !!!click here~~~" android:layout_width="match_parent"
    android:layout_marginTop="5dp"
    android:layout_height="50dp"
    android:onClick="alertShow2"/>
  <Button android:text="hey,alert !!!click here~~~" android:layout_width="match_parent"
    android:layout_marginTop="5dp"
    android:layout_height="50dp"
    android:onClick="alertShow3"/>
  <Button android:text="hey,actionsheet !!!click here~~~" android:layout_width="match_parent"
    android:layout_marginTop="5dp"
    android:layout_height="50dp"
    android:onClick="alertShow4"/>
  <Button android:text="hey,actionsheet !!!click here~~~" android:layout_width="match_parent"
    android:layout_marginTop="5dp"
    android:layout_height="50dp"
    android:onClick="alertShow5"/>
  <Button android:text="hey,actionsheet !!!click here~~~" android:layout_width="match_parent"
    android:layout_marginTop="5dp"
    android:layout_height="50dp"
    android:onClick="alertShow6"/>
  <Button android:text="窗口拓展点这里" android:layout_width="match_parent"
    android:layout_marginTop="5dp"
    android:layout_height="50dp"
    android:onClick="alertShowExt"/>

</LinearLayout>

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ios
, android
弹出框
android 仿ios弹出框、android高仿qq源码、android 高仿新浪微博、android 高仿美团源码、android 高仿微信,以便于您获取更多的相关知识。

时间: 2025-01-31 06:07:47

高仿IOS的Android弹出框_IOS的相关文章

Android仿淘口令复制弹出框功能(简答版)

上篇文章给大家介绍了Android实现打开手机淘宝并自动识别淘宝口令弹出商品信息功能,接下来通过本文给大家分享android简单版仿淘口令复制弹出框功能,希望对大家有所帮助! 使用Android系统的粘贴板管理服务及ClipboardManager通过addPrimaryClipChangedListener添加Listener来监听粘贴板的状态,很很简单的一个小功能~ 1.首先创建一个Service在后台运行: Intent intent = new Intent(this,MainServi

iOS自定义提示弹出框实现类似UIAlertView的效果_php实例

首先来看看实现的效果图 下面话不多说,以下是实现的示例代码 #import <UIKit/UIKit.h> typedef void(^AlertResult)(NSInteger index); @interface XLAlertView : UIView @property (nonatomic,copy) AlertResult resultIndex; - (instancetype)initWithTitle:(NSString *)title message:(NSString

iOS自定义提示弹出框实现类似UIAlertView的效果

首先来看看实现的效果图 下面话不多说,以下是实现的示例代码 #import <UIKit/UIKit.h> typedef void(^AlertResult)(NSInteger index); @interface XLAlertView : UIView @property (nonatomic,copy) AlertResult resultIndex; - (instancetype)initWithTitle:(NSString *)title message:(NSString

Android实现可输入数据的弹出框_Android

之前一篇文章,介绍了如何定义从屏幕底部弹出PopupWindow即<Android Animation实战之屏幕底部弹出PopupWindow>,写完之后,突然想起之前写过自定义内容显示的弹出框,就随手写了两个实例,分享出来: 第一种实现方式:继承Dialog 1.1 线定义弹出框要显示的内容:create_user_dialog.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay

Android 自定义弹出框实现代码_Android

废话不多说了,直接给大家上关键代码了. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self showAlertView:@"11111"]; } //自定义弹出框 -(void)showAlertView:(NSString *)strTipText { UIView *showView=[[UIView alloc]init]; [sho

Android 多种简单的弹出框样式设置代码_Android

简介 这是一个基于AlertDialog和Dialog这两个类封装的多种弹出框样式,其中提供各种简单样式的弹出框使用说明.同时也可自定义弹出框. 项目地址:http://www.github.com/jjdxmashl/jjdxm_dialogui 特性 1.使用链式开发代码简洁明了 2.所有的弹出框样式都在DialogUIUtils这个类中完成,方便查阅方法 3.可以自定义弹出框字体样式 4.简单的类似加载框的样式可以支持两种主题更改默认白色和灰色 截图   demo下载 demo apk下载

Android仿QQ长按删除弹出框功能示例

废话不说,先看一下效果图,如果大家感觉不错,请参考实现代码: 对于列表来说,如果想操作某个列表项,一般会采用长按弹出菜单的形式,默认的上下文菜单比较难看,而QQ的上下文菜单就人性化多了,整个菜单给用户一种气泡弹出的感觉,而且会显示在手指按下的位置,而技术实现我之前是使用popupWindow和RecyclerView实现的,上面一个RecyclerView,下面一个小箭头ImageView,但后来发现没有必要,而且可定制化也不高,还是使用多个TextView更好一点. 我封装了一下,只需要一个P

Android 仿微信朋友圈点赞和评论弹出框功能_Android

贡献/下载源码:https://github.com/mmlovesyy/PopupWindowDemo 本文简单模仿微信朋友圈的点赞和评论弹出框,布局等细节请忽略,着重实现弹出框.发评论,及弹出位置的控制. 1. 微信弹出框 微信朋友圈的点赞和评论功能,有2个组成部分: 点击左下角的"更多"按钮,弹出对话框: 点击评论,弹出输入框,添加评论并在页面中实时显示:   微信朋友圈点赞和评论功能 2. 实际效果 本文将建一个 ListView,在其 Item 中简单模仿微信的布局,然后着重

微信浏览器弹出框滑动时页面跟着滑动的实现代码(兼容Android和IOS端)_Android

 在做微信开发的时候遇到这个问题:微信浏览器弹出框滑动时页面跟着滑动. 我觉得这个问题用的是下面这几行代码: var $body = $('body'), dialogIsInView = !1,//当前是不是对话框 lastContentContainerScrollTop = -1,//用于弹出框禁止内容滚动 $contentContainer = $('#content-container');//内容容器 //阻止Window滚动 function stopWindowScroll()