Android 底部弹出提示框的解决办法(使用Activity以及PopupWindow)

本片文章主要谈探讨了如何实现在底部弹出提示框背景为半透明效果的实现。想要实现此种效果一般有两种方式一个是使用Activity设置Theme另一种方式就是使用PopupWindow设置样式实现效果。

一,使用Activity

首先是此activity的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:background="#b0000000"
  >  

<LinearLayout
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:id="@+id/pop_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:layout_alignParentBottom="true"
    android:background="@drawable/callsharp_select"
     >  

    <Button
        android:padding="10dp"
        android:id="@+id/btn_take_photo"
        android:layout_marginLeft="30dip"
        android:layout_marginRight="30dip"
        android:layout_marginTop="20dip"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="拍照"
        android:background="@drawable/whiteselector"
        android:textStyle="bold"
         />  

    <Button
        android:padding="10dp"
        android:id="@+id/btn_pick_photo"
        android:layout_marginLeft="30dip"
        android:layout_marginRight="30dip"
        android:layout_marginTop="5dip"
         android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="从相册选择"
         android:background="@drawable/whiteselector"
         android:textStyle="bold"
         />  

    <Button
        android:padding="10dp"
        android:id="@+id/btn_cancel"
       android:layout_marginLeft="30dip"
       android:layout_marginRight="30dip"
       android:layout_marginTop="15dip"
       android:layout_marginBottom="15dip"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="取消"
       android:background="@drawable/whiteselector"
       android:textStyle="bold"  

        />
</LinearLayout>
</RelativeLayout>

在AndroidManifest当中的配置

<activity
            android:theme="@style/activity_popup"
            android:name=".PopupActivity"
            ></activity>

指定了自定义的Theme 在style当中设置

<style name="activity_popup" parent="android:Theme.Translucent.NoTitleBar">
    <item name="android:windowAnimationStyle">@style/AnimBottom</item>
    </style>

在其中我添加了进入很退出的动画采用了上下进出的方式:

<style name="AnimBottom" parent="@android:style/Animation">
    <item name="android:windowEnterAnimation">@anim/push_bottom_in</item>
    <item name="android:windowExitAnimation">@anim/push_bottom_out</item>
    </style>

进出的动画为:

push_bottom_in:

<?xml version="1.0" encoding="utf-8"?>
<!-- 上下滑入式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" >  

    <translate
        android:duration="200"
        android:fromYDelta="100%p"
        android:toYDelta="0"
     />
</set>  

push_bottom_out为:

<?xml version="1.0" encoding="utf-8"?>
<!-- 上下滑出式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" >  

    <translate
        android:duration="200"
        android:fromYDelta="0"
        android:toYDelta="50%p" />
</set>

这样就实现了下部弹出框。

二,使用PopupWindow实现

使用的样式和动画效果不改变与上边的相同,首先一个自定义的PopupWindow

package com.example.activityanimationdemo;

import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.PopupWindow;

public class MyPopupWindow extends PopupWindow{
	private View mainview;
public MyPopupWindow(Activity context,OnClickListener itemclick){
	super(context);
	LayoutInflater inflater=(LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
	mainview=inflater.inflate(R.layout.activity_popup, null);
	this.setWidth(LayoutParams.MATCH_PARENT);
	this.setHeight(LayoutParams.MATCH_PARENT);
	this.setContentView(mainview);
	this.setFocusable(true);
	this.setAnimationStyle(R.style.AnimBottom);
}
}

然后在Activity当中的点击事件显示PopupWindow:

findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
//				ActivityMy.this.startActivity(new Intent(ActivityMy.this, PopupActivity.class));
		popupwindow=new MyPopupWindow(ActivityMy.this, null);
		popupwindow.showAtLocation(ActivityMy.this.findViewById(R.id.demo), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);
			}
		});
	}

效果图:

Android 底部弹出提示框的解决办法(使用Activity以及PopupWindow)

时间: 2024-10-22 09:16:40

Android 底部弹出提示框的解决办法(使用Activity以及PopupWindow)的相关文章

easyui导出excel无法弹出下载框的解决办法

之前用ajax做的,代码如下(ActionUrl为一般处理程序ashx的路径): $.ajax({ url: ActionUrl + '?action=export&ID=' + $('#fm_ID').val(), dataType: 'json', success: function (jsonstr) { //top.art.dialog.tips('导出成功!'); } }); 没办法弹出下载框. 直接浏览器地址栏输入相关页面地址并打开可以弹出下载框下载,考虑可能是iframe的缘故.

Bootstrap无法弹出模态框的解决办法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="/static/plugins/bootstrap/css/bootstrap.css"> <link rel=&

android中常用的弹出提示框

转自:http://blog.csdn.net/centralperk/article/details/7493731 我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框.当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有

如何实现android蓝牙开发 自动配对连接,并不弹出提示框

如何实现android蓝牙开发 自动配对连接,并不弹出提示框 之前做一个android版的蓝牙,遇到最大的难题就是自动配对. 上网查资料说是用反射createBond()和setPin(),但测试时进行配对还是会出现提示,但配对是成功了 我就开始查找怎么关闭这个蓝牙配对提示框,后面还是伟大的android源码帮助了我. 在源码 BluetoothDevice 类中还有两个隐藏方法 cancelBondProcess()和cancelPairingUserInput() 这两个方法一个是取消配对进

经验总结:WebBrowser自动点击弹出提示框alert、弹出对话框confirm、屏蔽弹出框、屏蔽弹出脚本错误的解决办法

经验总结:WebBrowser自动点击弹出提示框alert.弹出对话框confirm.屏蔽弹出框.屏蔽弹出脚本错误的解决办法 网上有好多解决方法,可是不一定好使,本人经过多次试验,针对WebBrowser控件中自动点击弹出框及禁用脚本提示问题得到如下几种实际情况的解决办法,绝对管用. 1.屏蔽弹出错误脚本 将WebBrowser控件ScriptErrorsSuppressed设置为True即可. (参考本篇博客:http://www.cnblogs.com/qqflying/archive/20

Android底部弹出iOS7风格对话选项框

<Android底部弹出iOS7风格对话选项框> 效果图如下: 网上流传的Android底部弹出iOS7风格的对话选项框开源代码,原作者不详.我在网上流传的代码基础上改进了一些地方,把原来作为Application发布的代码整理成一个Android的Library,如果在未来的Android项目中需要这样的对话选项框样式,则只需要下载我上次到CSDN的完整库项目(完整的Android库项目代码我已经上传到CSDN,下载地址:http://download.csdn.net/download/z

jQuery - 选中复选框则弹出提示框

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>判断是否选中</title> <script type="text/javascript" src="./js/jquery-1.8.3.min.js"></script> <script

Android的弹出登陆框的实现

最近在做一个项目,要用到登陆框,几经波折,最后用的是直接将Activity的Theme属性设置成Dialog,然后达到了我想要的效果. 下面是我的实现经历: 1.首先,我是直接使用AlertDialog来实现,确定是,形状有点难看,而且获得Dialog里面的控件略显麻烦(因为我要做的登陆框有一定的布局),然后就给我就放弃了,可能因为我太水了,不能很好的使用它 2.然后我就使用PopupWindow来实现,界面是达到了我的要求,控件的获得通过Inflater就可以获得了相对较简单,但是有一个缺点就

asp.net 后台代码跳转页面前弹出提示框

1.Response.Write("<script>alert('查询语句执行出错!');window.location.href=DisplayData.aspx</script>"); 2.Page.RegisterStartupScript("msg", "<script>alert('查询语句执行出错!');window.location.href='DisplayData.aspx'</script>