精华内容
下载资源
问答
  • 在锁屏状态下弹窗的效果我们平时并不少见,如QQ、微信和闹钟等,但是Android开发者要怎么实现功能呢?下面起来看看。
  • 本文实例为大家分享了Android实现底部弹窗效果的具体代码,供大家参考,具体内容如下 源代码地址:https://github.com/luoye123/Box 东西很简单,我就直接亮代码了: 1、activity_main.xml <?xml version=1.0...
  • 主要为大家详细介绍了Android实现弹窗进度条效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了Android实现自适应屏幕的弹窗广告,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了Android PopupWindow实现左侧弹窗效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 可能你们常常用弹出对话框也就是AlertDialog来进项一些操做, html今天咱们用另弹窗效果来完成 java使用的到类PopupWindow android官方说明: appPopupWindow extendsObject↳android.widget.PopupWindow 函数...

    可能你们常常用弹出对话框也就是AlertDialog来进项一些操做, html

    今天咱们用另一种弹窗效果来完成 java

    使用的到类PopupWindow android

    官方说明: app

    PopupWindow extends

    Object

    android.widget.PopupWindow 函数

    Class Overview

    A popup window that can be used to display an arbitrary view. The popup window is a floating container that appears on top of the current activity. 布局

    一个 弹出窗口能够被使用去展现一个任意的视图,这个弹出窗口是一个出如今当前activity上的悬浮的容器, 动画

    部分方法说明: spa

    一、显示的方法: code

    showAtLocation()显示在指定位置

    showAsDropDown()显示在一个参照物View的周围

    简单使用demo

    一、建立一个字段

    /*弹出的悬浮窗体*/

    private PopupWindow popupWindow;

    //将关闭popupWindow窗口的操做封装为一个函数

    dismissPopupWindow(popupWindow);

    View contentView = View.inflate(getApplicationContext(), R.layout.popup_app_item, null);

    /*-2表明包裹内容 -1表明填充父窗体*/

    popupWindow = new PopupWindow(contentView, -2, -2);

    popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

    int[] location = new int[2];

    view.getLocationInWindow(location);

    /*或操做等于加操做*/

    /*参数一、父窗体 参数二、布局控制 参数三、距离左边距离 参数四、距离顶部距离*/

    int dip = 60;

    int px = DensityUtil.dip2px(getApplicationContext(), dip);

    popupWindow.showAtLocation(parent, Gravity.LEFT | Gravity.TOP, px, location[1]);

    /*popopWindow要求动画效果的播放必需要求窗体有背景颜色*/

    /*弹出动画*/

    ScaleAnimation scaleAnimation = new ScaleAnimation(0.3f, 1.0f, 0.3f, 1.0f, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0.5f);

    scaleAnimation.setDuration(500);

    /*透明度*/

    AlphaAnimation alphaAnimation = new AlphaAnimation(0.5f, 1.0f);

    alphaAnimation.setDuration(500);

    AnimationSet animationSet = new AnimationSet(false);

    animationSet.addAnimation(scaleAnimation);

    animationSet.addAnimation(alphaAnimation);

    contentView.startAnimation(animationSet);

    关闭窗体的函数

    private void dismissPopupWindow(PopupWindow popupWindow) {

    /*弹出窗体*/

    if (popupWindow != null && popupWindow.isShowing()) {

    popupWindow.dismiss();

    popupWindow = null;

    }

    }

    注意事项:

    @Override

    protected void onDestroy() {

    dismissPopupWindow(popupWindow);

    super.onDestroy();

    }

    在destroy方法中要将其关闭销毁,不然会报错,由于其依赖于父Activity的存在而存在,当activity销毁前不将其销毁,就会产生错误

    展开全文
  • Android实现弹出层方式很多,下面介绍几种常用的1.通过FrameLayout模拟弹出层优点:实现简单,布局也比较好写缺点:位置在上下左右比较好,其他复杂的布局要写大量的点击事件来阻止点击向下传递比如实现下面的...

    在 Android 中实现弹出层方式很多,下面介绍几种常用的

    1.通过FrameLayout模拟弹出层

    优点:实现简单,布局也比较好写

    缺点:位置在上下左右比较好,其他复杂的布局要写大量的点击事件来阻止点击向下传递

    比如实现下面的效果:

    bdeeee288e9a28125e302ff796daa720.png

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    android:id="@+id/but01"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="Click"/>

    android:id="@+id/popouter"

    android:visibility="gone"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">

    android:orientation="horizontal"

    android:layout_width="match_parent"

    android:layout_height="0dp"

    android:background="#AAA"

    android:alpha="0.5"

    android:id="@+id/popinner1"

    android:layout_weight="5">

    android:id="@+id/popinner2"

    android:gravity="center"

    android:layout_width="match_parent"

    android:layout_height="0dp"

    android:background="#FFF"

    android:orientation="vertical"

    android:layout_weight="1">

    android:text="弹出的按钮"

    android:id="@+id/but02"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content" />

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    popouter = findViewById(R.id.popouter);

    popinner1 = findViewById(R.id.popinner1);

    popinner2 = findViewById(R.id.popinner2);

    but01 = (Button) findViewById(R.id.but01);

    but02 = (Button) findViewById(R.id.but02);

    but01.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

    popouter.setVisibility(View.VISIBLE);

    }

    });

    //这是底部弹窗的外部区域,点击取消显示,同时起到阻止冒泡的作用

    popinner1.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

    popouter.setVisibility(View.GONE);

    }

    });

    //防止冒泡

    popinner2.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

    //Do nothing..

    }

    });

    but02.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

    Toast.makeText(MainActivity.this, "Hello World", Toast.LENGTH_SHORT).show();

    }

    });

    }

    2.各种Dialog

    这里以Dialog为例子,系统中其他的Dialog类似

    注意:官方不推荐直接使用Dialog创建对话框而是推荐使用DialogFragment

    Dialog dialog = new Dialog(mContext);

    dialog.setTitle("选择xxx");

    Window window = dialog.getWindow();

    window.setGravity(Gravity.BOTTOM|Gravity.CENTER);

    //好奇怪这样可以取消外边距

    //dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE));

    dialog.setContentView(LayoutInflater.from(mContext).inflate(R.layout.pop,null));

    dialog.show();

    3.DialogFragment

    使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,它和Fragment有着基本一致的声明周期。

    且DialogFragment也允许开发者把Dialog作为内嵌的组件进行重用,类似Fragment(可以在大屏幕和小屏幕显示出不同的效果)

    public class MyDialog extends DialogFragment {

    private Context context;

    //获得context

    @Override

    public void onAttach(Context context) {

    super.onAttach(context);

    this.context = context;

    }

    //初始化

    @Override

    public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) {

    Window window = getDialog().getWindow();

    //不显示标题

    window.requestFeature(Window.FEATURE_NO_TITLE);

    View view = inflater.inflate(R.layout.pop, container);

    return view;

    }

    }

    创建Dialog并使用

    MyDialog dialog = new MyDialog();

    dialog.show(getFragmentManager(), "mydialog");

    4.PopupWindow

    PopupWindow是一个以弹窗方式呈现的控件,可以用来显示任意视图(View),而且会浮动在当前活动(activity)的顶部”。因此我们可以通过PopupWindow实现各种各样的弹窗效果,进行信息的展示或者是UI交互,由于PopupWindow自定义布局比较方便,而且在显示位置比较自由不受限制,因此受到众多开发者的青睐。

    AlertDialog在位置显示上是固定的,而PopupWindow则相对比较随意,能够在主屏幕上的任意位置显示。

    效果如下

    57d675967046222979a1cc2c4664cc4c.png

    构造方法

    //contentView为要显示的view,width和height为宽和高,值为像素值,也可以是MATCHT_PARENT和WRAP_CONTENT

    public PopupWindow(View contentView, int width, int height, boolean focusable)

    public PopupWindow (Context context)

    public PopupWindow(View contentView, int width, int height)

    public PopupWindow(View contentView)

    位置设置

    public void showAtLocation(View parent, int gravity, int x, int y)

    public void showAsDropDown(View anchor)

    public void showAsDropDown(View anchor, int xoff, int yoff)

    通过showAtLocation设置,parent可以为Activity中的任意一个View(最终的效果一样),会通过这个View找到其父Window,也就是Activity的Window。

    gravity,默认为Gravity.NO_GRAVITY,等效于Gravity.LEFT

    Gravity.TOP

    x, y,边距。这里的x,y表示距离Window边缘的距离,方向由Gravity决定。例如:设置了Gravity.TOP,则y表示与Window上边缘的距离;而如果设置了Gravity.BOTTOM,则y表示与下边缘的距离。

    如果弹窗位置超出了Window的范围,会自动处理使其处于Window中。对于屏幕(左上角0,0),窗位置超出了Window的范围,会自动处理使其处于Window中,显示范围是顶部和底部

    注意使用的时候,如果设置Gravity.TOP,则要计算状态栏的高度

    通过showAsDropDown(相对于组件)来设置,弹窗的位置是相对于anchor。

    如果指定了xoff和yoff,则会在原有位置向右偏移xoff,向下偏移yoff。

    如果指定gravity为Gravity.RIGHT,则弹窗和控件右对齐;否则左对齐。注意,计算右对齐时使用了- PopupWindow的宽度,如果指定的宽度不是固定值,则计算会失效(可以从源码中看出来)。

    如果弹窗位置超出了Window的范围,会自动处理使其处于Window中。

    如果anchor可以滚动,则滚动过程中,PopupWindow可以自动更新位置,跟随anchor控件。

    View popView = LayoutInflater.from(this).inflate(R.layout.pop,null);

    final PopupWindow popWindow = new PopupWindow(popView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);

    popWindow.setTouchInterceptor(new View.OnTouchListener() {

    @Override

    public boolean onTouch(View v, MotionEvent event) {

    return false;

    }

    });

    // 如果不设置PopupWindow的背景,有些版本就会出现一个问题:无论是点击外部区域还是Back键都无法dismiss弹框

    popWindow.setBackgroundDrawable(new ColorDrawable());

    popWindow.showAtLocation(findViewById(R.id.outer), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);

    5.Toast

    这是最常见的一种弹窗,用法也比较简单

    Toast toast = Toast.makeText(mContext, "Hello", Toast.LENGTH_SHORT);

    //设置位置

    toast.setGravity(Gravity.TOP|Gravity.RIGHT,0,0);

    View view =LayoutInflater.from(mContext).inflate(R.layout.pop, null);

    //在原始布局上添加布局

    LinearLayout toastView = (LinearLayout) toast.getView();

    //这个很重要,不然宽度很小

    view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

    toastView.addView(view,0);

    //设置布局,会取消默认的Toast样式

    //toast.setView(view);

    toast.show();

    6.Activity并配合Dialog主题的方式实现弹窗

    建立一个样式继承Dialog主题,在Activity中指定样式

    为主Activity设置这个主题后会在桌面上弹出一个弹窗,且空白部分可以看到桌面上的东西,效果不错

    @android:color/transparent

    @android:style/Animation

    false

    false

    展开全文
  • Android底部支付弹窗实现的效果: 实现的思路: 1.通过继承PopupWindow自定义View来达到弹窗的弹出效果; 2.通过回调将输入的密码由弹窗传入到主界面中; 2.恩,这就够了——>有些注意点在代码中备注; 自定义View...
  • 主要介绍了Android编程实现的自定义弹窗(PopupWindow)功能,结合简单实例形式分析了Android自定义弹窗实现方法与相关注意事项,需要的朋友可以参考下
  • android 实现密码输入弹窗

    千次阅读 2019-11-22 15:13:40
    前言部分 最近有点忙好久没写啥东西了,正好项目中用到了一个输入密码的弹窗,顺便单独记录下,防止以后需要用. ...还有就是你需要设置dialog的布局属性来保证dialog不是一个变形的弹窗. 代码如下: va...

    前言部分

    最近有点忙好久没写啥东西了,正好项目中用到了一个输入密码的弹窗,顺便单独记录下,防止以后需要用. 资源我放在文末,有需要的可下载,或者留邮箱

    我是图片

    内容部分

    内容比较简单:
    主要分为几个步骤,如下:

    1. 实现dialog的部分内容.
      • 这里注意一下就是dialog的显示问题,比如,你需要设置一个主题,否则dialog显示的可能会有缝隙;还有就是你需要设置dialog的布局属性来保证dialog不是一个变形的弹窗.
      • 代码如下:
    val window = window
            // 设置显示动画
            val wl = window!!.attributes
            setCanceledOnTouchOutside(true)
            window.setWindowAnimations(R.style.main_menu_animstyle)
            wl.x = 0
            wl.y = mContext.windowManager.defaultDisplay.height
            // 以下这两句是为了保证按钮可以水平满屏
            wl.width = ViewGroup.LayoutParams.MATCH_PARENT
            wl.height = ViewGroup.LayoutParams.WRAP_CONTENT
            // 设置显示位置
            onWindowAttributesChanged(wl)
    

    以上基本上就差不多,其他问题应该都比较好解决.

    1. 密码输入的布局

      这里我使用是的GridLayout(表格布局)布局,因为我们要使用的就是表格的样式,但是因为使用了只用21版本以上才能使用的api,所以如果你的app需要兼容到21以下.可以替换成其他布局,比如线性布局.(还有就我觉得直接自定义view会更好,因为以前我绘制过影院选座的组件.感觉这个就是只绘制座位和点击时间那部分代码.)
      代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:gravity="center_horizontal"
        android:orientation="vertical">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:orientation="vertical">
    
            <LinearLayout
                android:id="@+id/ll_password_number_result"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:layout_margin="5dp"
                android:background="@color/white"
                android:orientation="horizontal">
    
                <TextView style="@style/password_number" />
    
                <TextView style="@style/password_number" />
    
                <TextView style="@style/password_number" />
    
                <TextView style="@style/password_number" />
    
                <TextView style="@style/password_number" />
    
                <TextView style="@style/password_number" />
            </LinearLayout>
            <!--键盘部分-->
            <GridLayout
                android:id="@+id/gl_password_numbers"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:columnCount="3"
                android:orientation="horizontal"
                android:rowCount="4">
    
                <TextView
                    style="@style/password_btn"
                    android:text="1" />
    
                <TextView
                    style="@style/password_btn"
                    android:text="2" />
    
                <TextView
                    style="@style/password_btn"
                    android:text="3" />
    
    
                <TextView
                    style="@style/password_btn"
                    android:text="4" />
    
                <TextView
                    style="@style/password_btn"
                    android:text="5" />
    
                <TextView
                    style="@style/password_btn"
                    android:text="6" />
    
                <TextView
                    style="@style/password_btn"
                    android:text="7" />
    
                <TextView
                    style="@style/password_btn"
                    android:text="8" />
    
                <TextView
                    style="@style/password_btn"
                    android:text="9" />
    
                <TextView
                    style="@style/password_btn"
                    android:enabled="false"
                    android:text="      " />
    
                <TextView
                    style="@style/password_btn"
                    android:text="   0   " />
    
                <TextView
                    style="@style/password_btn"
                    android:text="delete" />
            </GridLayout>
        </LinearLayout>
    
    
    </LinearLayout>
    

    代码简单明了.

    1. 密码操作的部分,主要是一些判断逻辑,直接贴出来代码吧,
      fun setData() {
            for (i in 0 until gl_password_numbers.childCount) {
                gl_password_numbers.getChildAt(i).setOnClickListener { v ->
                    if (v is TextView) {
                        val s = v.text.toString().trim { it <= ' ' }
                        if (s.length == 1) {
                            if (count < 6) {
                                val childAt = ll_password_number_result.getChildAt(count) as TextView
                                childAt.text = s
                                passwordList.add(s)
                                if (count == 5) {
                                    completeListener.onCompleteListener(passwordList)
                                }
                                count++
                            }
    
                        } else {
                            if (count > 0) {
                                count--
                                val childAt = ll_password_number_result.getChildAt(count) as TextView
                                childAt.text = ""
                                passwordList.removeAt(count)
                            }
                        }
                    }
    
                }
            }
    
        }
    
    1. 加入回调

      回调就很简单了,把拿到的数字返回回去就可以了.
      . 没了

    内容比较简单有需要的直接拿去改一改应该就可以了.
    demo下载地址

    结束部分

    由于在忙新的商城项目,最近也没怎么看东西,目前计划如果有时间会学习flutter相关.

    展开全文
  • Android弹窗实现之Popupwindow及DialogFragment。创建并实现PopupWindow布局 实现PopupWindow对象实例 设置PopupWindow背景、动画属性、控件实现及事件监听 显示PopupWindow及位置设定。
  • android实现弹窗和自定义弹窗

    千次阅读 2017-03-15 14:04:47
    安卓中我们有时候要实现弹窗的功能,实现弹窗有很多种实现的方法,有用系统默认的弹窗弹出窗口,但是有很多时候默认的弹窗满足不了我们,在这里我主要讲解两种自定义弹窗的方法和种默认弹窗效果。1、 首先我们来...
                           **安卓中弹窗和自定义弹窗**
    

    在安卓中我们有时候要实现弹窗的功能,实现弹窗有很多种实现的方法,有用系统默认的弹窗弹出窗口,但是有很多时候默认的弹窗满足不了我们,在这里我主要讲解两种自定义弹窗的方法和一种默认弹窗效果。

    1、 首先我们来讲解一下默认弹窗是怎么实现的,代码如下:

    // 创建builder实例

    AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setIcon(R.drawable.question_dialog_icon);

            builder.setTitle("提示");
    
            builder.setMessage("游戏正在进行,你确定要切换么,切换游戏不会被保存的额?");
    
            // 确定按钮的点击事件
    
            builder.setPositiveButton(R.string.confirm,
    
                   newDialogInterface.OnClickListener() {
    
                      public void onClick(DialogInterfacedialog,
    
                            int whichButton) {
    
                         Intentintent = newIntent(JigsawActivity.this,
    
                               MainActivity.class);
    
                         // 设置退出程序的标志位
    
                         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    
                         startActivity(intent);
    
                      }
    
                   });
    
            // 取消按钮的点击事件
    
            builder.setNegativeButton("取消",
    
                   newDialogInterface.OnClickListener() {
    
                      @Override
    
                      public void onClick(DialogInterfacedialog,
    
                            int which) {
    
                      }
    
                   });
    
            builder.create().show();
    

    2、实现一种自定义弹窗的效果,这种弹窗和上面有点类似,代码如下:

    // 设置自定义弹窗

            AlertDialog.Builderbuilder;
    
            AlertDialogalertDialog;
    
            // 生成一个inflater对象
    
            LayoutInflaterinflater = LayoutInflater.from(mContext);
    

    // 使用inflater对象根据布局文件生成一个view对象

            Viewlayout = inflater.inflate(R.layout.success, null);
    
            // 取出控件
    
            TextViewtxtTextView = (TextView) layout
    
                   .findViewById(R.id.mddd);
    
            txtTextView.setText("游戏胜利!");
    
            builder= newAlertDialog.Builder(mContext);
    
            builder.setView(layout);
    
            alertDialog= builder.create();
    
            alertDialog.show();
    

    3、实现自定义弹窗的效果,这种自定义弹窗是通过继承类来实现的,具体代码如下:

    //该类用于实现弹出框的效果,实现自定义的功能

    public classkeydialog extendsDialog {

    // 用来存放代表对话框当中按钮的对象

    private final View keys[] = new View[9];

    // 存放已经使用过的数字

    private int used[];

    private shuduview shuduview;

    // 构造函数第二个参数当中保存着已经用过的数字

    public keydialog(Contextcontext, int[]used, shuduview shuduview) {

      super(context);
    
      this.used = used;
    
      this.shuduview = shuduview;
    

    }

    @Override

    protected void onCreate(BundlesavedInstanceState) {

      super.onCreate(savedInstanceState);
    
      // 设置标题
    
      setTitle("选择数字");
    
      setContentView(R.layout.key);
    
      findviews();
    
      // 遍历整个数组
    
      for (int i = 0; i < used.length; i++) {
    
         if (used[i] != 0) {
    
            keys[used[i] -1].setVisibility(View.INVISIBLE);
    
         }
    
      }
    
      // 为所有的按钮设置监听器
    
      setlisteners();
    

    }

    // 获取全部按钮

    private void findviews() {

      keys[0] = this.findViewById(R.id.key1);
    
      keys[1] = this.findViewById(R.id.key2);
    
      keys[2] = this.findViewById(R.id.key3);
    
      keys[3] = this.findViewById(R.id.key4);
    
      keys[4] = this.findViewById(R.id.key5);
    
      keys[5] = this.findViewById(R.id.key6);
    
      keys[6] = this.findViewById(R.id.key7);
    
      keys[7] = this.findViewById(R.id.key8);
    
      keys[8] = this.findViewById(R.id.key9);
    

    }

    // 通知shuduview对象刷新数据

    private void returnresult(int title) {

      shuduview.setSelectedtitle(title);
    
      // 取消对话框显示
    
      dismiss();
    

    }

    // 设置按钮的监听事件

    private void setlisteners() {

      // 遍历整个按钮数组
    
      for (int i = 0; i < keys.length; i++) {
    
         final int t = i + 1;
    
         keys[i].setOnClickListener(new View.OnClickListener() {
    
            public void onClick(View arg0) {
    
                returnresult(t);
    
            }
    
         });
    
      }
    

    }

    }

    调用上面这种自定义弹窗的方法是:

    keydialog keydialog = new keydialog(mContext, usedaleady, this);

    keydialog.show();

    以上就是这次要实现的弹窗的效果。

    展开全文
  • 主要为大家详细介绍了Android实现气泡布局/弹窗效果,可控制气泡尖角方向及偏移量,感兴趣的小伙伴们可以参考一下
  • 主要介绍了Android启动页用户相关政策弹框的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • 用过ios的都知道ios上输入法关闭的同时会自动关闭输入框,那么在android上如何实现监听输入法弹出和关闭呢?接下来通过本文给大家分享种可靠的实现方式
  • ——第一种是弹出一个真正的dialog,但是这是系统级的dialog,需要在manifest中获得系统dialog的权限:之后在使用dialog的时候要设置为系统dialog:private void showDialog(final Context context){AlertDialog....
  • Android实现全局弹窗的三种方式

    千次阅读 2020-12-22 08:49:15
    通过复制一个分享出去的文字(这段文字有一定的规则,比如满足某种格式#文字#….url….)当用户复制了这段文字,打开了我们的app,就会对文字进行检查,满足条件,就提取相应的条件去服务器请求,当数据请求下来后,就...
  • 1:创建一个管理类ActivityManager,该类包含成员变量任务栈Stack<Activity>(大佬可自行查找资料),用于保存你所打开的Activity 2:在自定义的Receiver中,通过ActivityManager获取当前栈顶元素Activity作为...
  • 直接上代码:布局代码 1.android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:padding="20dp">android:id="@+id/call_phone"android:layout_width=...
  • 最近做一个关于弹窗的功能,首先是接收推送消息,得到推送消息后,在页面上弹出弹窗显示,并可在弹窗中进行一些操作。首先想到的就是方便,使用自定义Dialog去实现,发现Dialog底层需要Activity对象的支持。这样就会...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,216
精华内容 6,486
关键字:

安卓实现一个弹窗