iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android开发之PopupWindow实现弹窗效果
  • 472
分享到

Android开发之PopupWindow实现弹窗效果

2024-04-02 19:04:59 472人浏览 薄情痞子
摘要

本文实例为大家分享了Android开发之PopupWindow实现弹窗的具体代码,供大家参考,具体内容如下 基本框架 在activity_main.xml中设置一个按钮,用于唤出弹窗

本文实例为大家分享了Android开发之PopupWindow实现弹窗的具体代码,供大家参考,具体内容如下

基本框架

activity_main.xml中设置一个按钮,用于唤出弹窗;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:text="Popup"
        android:onClick="Popup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>


</LinearLayout>

再编写一个Layout资源文件popup_view.xml用于弹窗:

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

    <Button
        android:id="@+id/btn1"
        android:text="Button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <Button
        android:id="@+id/btn2"
        android:text="Button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>


</LinearLayout>

MainActivity.java中编写按钮的点击事件,同样用View popup_view=getLayoutInflater().inflate(R.layout.popup_view,null);将上面编写的Layout资源转换成View,之后就可以新建一个弹窗并让其弹出。

package com.example.mypopupwindow;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.PopupWindow;

public class MainActivity extends AppCompatActivity {

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

    public void Popup(View view) {
        View popup_view=getLayoutInflater().inflate(R.layout.popup_view,null);
        PopupWindow window=new PopupWindow(popup_view, ViewGroup.LayoutParams.WRAP_CONTENT
                ,ViewGroup.LayoutParams.WRAP_CONTENT);
        window.showAsDropDown(view);
    }
}

点击按钮就会得到弹窗:

常用方法

setContentView(View contentView) 设置弹窗的View
showAsDropDown(View anchor) 弹窗的位置在控件的下方
showAsDropDown(View anchor,int xoff,int yoff) 相对某个控件的位置,有偏移
setFocusable(boolean focusable) 设置是否获取焦点
setBackgroundDrawable(Drawable background) 设置背景
dismiss() 关闭窗口
setAnimationStyle(int animationStyle) 设置加载动画(在学习了动画后再深入)
setTouchable(boolean touchable) 设置触摸使能
setOutsideTouchable(boolean touchable) 设置弹窗外面的触摸使能

实例

将focusable设置为true,就可以通过点击弹窗以外的地方关闭弹窗。

使用showAsDropDown(View anchor,int xoff,int yoff)就可以让弹窗有偏移:

使用window.setBackgroundDrawable(getResources().getDrawable(R.drawable.image));设置弹窗的图片背景:

对于弹窗中的两个按钮也可以设置监听,从而实现一些点击事件,在点击事件的结尾可以添加dismiss()函数使得点击后弹窗关闭。

package com.example.mypopupwindow;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.PopupWindow;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void Popup(View view) {
        View popup_view=getLayoutInflater().inflate(R.layout.popup_view,null);
        Button btn1=popup_view.findViewById(R.id.btn1);
        Button btn2=popup_view.findViewById(R.id.btn2);

        PopupWindow window=new PopupWindow(popup_view, ViewGroup.LayoutParams.WRAP_CONTENT
                ,ViewGroup.LayoutParams.WRAP_CONTENT,true);
        window.setBackgroundDrawable(getResources().getDrawable(R.drawable.image));
        window.showAsDropDown(view);

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e("ShadyPi","btn1");
                window.dismiss();
            }
        });
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e("ShadyPi","btn2");
                window.dismiss();
            }
        });
    }
}

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

--结束END--

本文标题: Android开发之PopupWindow实现弹窗效果

本文链接: https://www.lsjlt.com/news/167872.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android开发之PopupWindow实现弹窗效果
    本文实例为大家分享了Android开发之PopupWindow实现弹窗的具体代码,供大家参考,具体内容如下 基本框架 在activity_main.xml中设置一个按钮,用于唤出弹窗...
    99+
    2024-04-02
  • Android开发实现多进程弹窗效果
    安卓开发之多进程弹窗,供大家参考,具体内容如下 背景 有时在弹窗绘图时,需要弹窗在新的进程中,以保证在弹窗绘图的过程中不会占用过多的内存导致主进程被关。 代码实现 子进程弹窗 首先我...
    99+
    2024-04-02
  • Android studio实现PopupWindow弹出框效果
    本文实例为大家分享了Android studio实现PopupWindow弹出框的具体代码,供大家参考,具体内容如下 实现步骤: 第一步:自定义.xml布局文件 <?...
    99+
    2024-04-02
  • Android PopUpWindow实现卡片式弹窗
    首先自定义一个ViewGroup,继承自LinerLayout,为了实现上下滑动 //用于实现顶部弹窗动画 以及向上滑动动画 public class TopTipsLinear...
    99+
    2024-04-02
  • Android实现Window弹窗效果
    本文实例为大家分享了Android实现Window弹窗效果的具体代码,供大家参考,具体内容如下 效果图 第一步 准备弹窗的布局,新建XML文件 photo_window &l...
    99+
    2024-04-02
  • Android实现底部弹窗效果
    本文实例为大家分享了Android实现底部弹窗效果的具体代码,供大家参考,具体内容如下源代码地址:https://github.com/luoye123/Box东西很简单,我就直接亮代码了: activity_main.xml<...
    99+
    2023-05-31
    android 弹窗 roi
  • Android实现底部半透明弹出框PopUpWindow效果
    Android底部半透明弹出框PopUpWindow,供大家参考,具体内容如下layout布局:<?xml version="1.0" encoding="utf-8"?><RelativeLayout x...
    99+
    2023-05-30
    android 弹出框 popupwindow
  • Android popupWindow弹出窗体实现方法分析
    本文实例讲述了Android popupWindow弹出窗体实现方法。分享给大家供大家参考,具体如下: 建立popupwindow显示的布局页面(普通的view任意布局)<?xml version="1.0" encoding...
    99+
    2023-05-31
    android popupwindow 弹出窗体
  • 怎么用Android PopUpWindow实现卡片式弹窗
    这篇文章主要讲解了“怎么用Android PopUpWindow实现卡片式弹窗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Android PopUpWindow实...
    99+
    2023-06-28
  • Android开发实现popupWindow弹出窗口自定义布局与位置控制方法
    本文实例讲述了Android开发实现popupWindow弹出窗口自定义布局与位置控制方法。分享给大家供大家参考,具体如下:布局文件:主布局文件:activity_main:<?xml version="1.0" encodi...
    99+
    2023-05-30
    android popupwindow 弹出窗口
  • Android开发之DrawerLayout实现抽屉效果
    谷歌官方推出了一种侧滑菜单的实现方式(抽屉效果),即 DrawerLayout,这个类是在Support Library里的,需要加上android-support-v4.jar这个包。使用注意点DrawerLayout的第一个子元素必须是...
    99+
    2023-05-31
    android drawerlayout roi
  • react实现Modal弹窗效果
    本文实例为大家分享了react实现Modal弹窗效果的具体代码,供大家参考,具体内容如下 一、Dialog.js文件 import React, {useMemo, useEffec...
    99+
    2024-04-02
  • Android开发之ToggleButton实现开关效果示例
    本文实例讲述了Android使用ToggleButton实现开关效果的方法。分享给大家供大家参考,具体如下:activity_main.xml<?xml version="1.0" encoding="utf-8"?&...
    99+
    2023-05-30
    android togglebutton roi
  • Flutter实现底部弹窗效果
    目录实现效果代码结构基本使用自定义底部弹窗总结在实际开发过程中,经常会用到底部弹窗来进行快捷操作,例如选择一个选项,选择下一步操作等等。在 Flutter 中提供了一个 showMo...
    99+
    2024-04-02
  • Vue实现简单弹窗效果
    本文实例为大家分享了Vue实现简单弹窗效果的具体代码,供大家参考,具体内容如下 选中input 弹出选项框 显示弹窗 首先要在components中新建两个组件 要实现子组件向父...
    99+
    2024-04-02
  • vue实现弹窗拖拽效果
    本文实例为大家分享了vue实现弹窗拖拽效果的具体代码,供大家参考,具体内容如下 前言 实现拖拽其实简单来说就分为三步 一、创建一个js文件 因为本身dialog窗口不具备移动拖拽能力...
    99+
    2024-04-02
  • Android实现悬浮窗效果
    本文实例为大家分享了Android实现悬浮窗效果的具体代码,供大家参考,具体内容如下 一、权限: <uses-permission android:name="android....
    99+
    2024-04-02
  • jquery实现简单的弹窗效果
    本文实例为大家分享了jquery实现简单弹窗效果的具体代码,供大家参考,具体内容如下 效果实现图 css代码 h1,p,h2{ margin: 0; padding: ...
    99+
    2024-04-02
  • Android自定义弹窗提示效果
    本文实例为大家分享了Android 自定义弹窗提示的具体代码,供大家参考,具体内容如下 Java文件: private void showSetDeBugDialog() { ...
    99+
    2024-04-02
  • Android 实现Loading弹窗
    总结下一个简单的需求,后续需要用到的时候可以直接用。 在我们网络请求,异步加载数据,等待函数回调,数据库的操作等耗时的过程中,这个时候,界面在等待返回数据来进行展示,此时加上一个loading弹窗会显得有好很多。 在一些情况下不加的话,会导...
    99+
    2023-09-22
    android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作