Android仿Iphone屏幕底部弹出半透明PopupWindow效果
作者:lfdfhl 时间:2023-08-17 06:14:43
本文实例为大家分享了Android仿Iphone屏幕底部弹出效果的具体代码,供大家参考,具体内容如下
main.xml如下:
<?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="fill_parent"
>
<Button
android:id="@+id/button"
android:text="popupWindow"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
styles.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="popupAnimation" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/in</item>
<item name="android:windowExitAnimation">@anim/out</item>
</style>
</resources>
popupwindow.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#b5555555" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="12dip"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:orientation="vertical" >
<Button
android:id="@+id/confirmButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="确定"/>
<Button
android:id="@+id/cancleButton"
android:layout_marginTop="12dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="取消" />
</LinearLayout>
</RelativeLayout>
in.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="5000"
android:toYDelta="0"
android:duration="1500"
/>
</set>
out.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0"
android:toYDelta="5000"
android:duration="1500"
/>
</set>
PopupWindowTestActivity.Java如下:
import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.PopupWindow;
/**
* Demo描述:
* 仿Iphone从屏幕底部弹出半透明的PopupWindow
*/
public class PopupWindowTestActivity extends Activity {
private Button button;
private Button confirmButton;
private Button cancleButton;
private PopupWindow popupWindow;
private View popupWindowView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
button=(Button) findViewById(R.id.button);
button.setOnClickListener(new ButtonOnClickListener());
}
private class ButtonOnClickListener implements OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
popupWindowView = inflater.inflate(R.layout.popupwindow, null);
popupWindow = new PopupWindow(popupWindowView,LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT,true);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
//设置PopupWindow的弹出和消失效果
popupWindow.setAnimationStyle(R.style.popupAnimation);
confirmButton = (Button) popupWindowView.findViewById(R.id.confirmButton);
confirmButton.setOnClickListener(new ButtonOnClickListener());
cancleButton = (Button) popupWindowView.findViewById(R.id.cancleButton);
cancleButton.setOnClickListener(new ButtonOnClickListener());
popupWindow.showAtLocation(confirmButton, Gravity.CENTER, 0, 0);
break;
case R.id.confirmButton:
System.out.println("点击了确定按钮");
break;
case R.id.cancleButton:
popupWindow.dismiss();
break;
default:
break;
}
}}
}
标签:Android,Iphone,底部弹出,PopupWindow
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java实现列表、集合与数组之间转化的方法
2023-11-29 10:17:38
C#实现简单的计算器小功能
2023-05-13 06:46:11
![](https://img.aspxhome.com/file/2023/1/77301_0s.jpg)
java.lang.Void类源码解析
2022-07-15 04:07:46
java实现超市商品库存管理平台
2022-05-25 10:09:20
C#识别出图片里的数字和字母
2023-04-12 08:21:41
![](https://img.aspxhome.com/file/2023/0/78180_0s.png)
带大家认识Java语法之泛型与通配符
2021-06-04 06:14:46
![](https://img.aspxhome.com/file/2023/4/67494_0s.png)
OpenCV实现反阈值二值化
2022-06-29 16:02:33
![](https://img.aspxhome.com/file/2023/6/76316_0s.jpg)
解决SpringBoot中MultipartResolver和ServletFileUpload的冲突问题
2023-10-22 15:28:19
![](https://img.aspxhome.com/file/2023/1/60841_0s.png)
Unity3d实现Flappy Bird游戏
2023-09-17 20:54:29
![](https://img.aspxhome.com/file/2023/5/77295_0s.png)
Android 单双击实现的方法步骤
2023-04-19 02:19:31
Java实现Flappy Bird游戏源码
2022-11-02 16:55:29
![](https://img.aspxhome.com/file/2023/9/82999_0s.png)
IDEA自定义pom依赖的步骤详解
2021-11-06 04:14:32
![](https://img.aspxhome.com/file/2023/2/125602_0s.png)
Java SpringBoot 使用拦截器作为权限控制的实现方法
2023-04-18 01:41:58
使用genymotion访问本地上Tomcat上数据的方法
2022-11-23 05:51:43
![](https://img.aspxhome.com/file/2023/3/91003_0s.jpg)
Javassist如何操作Java 字节码
2021-08-09 08:21:28
![](https://img.aspxhome.com/file/2023/2/76582_0s.jpg)
android开机自启动app示例分享
2023-02-20 18:04:29
Android实现可复用的选择页面
2022-09-25 21:08:24
![](https://img.aspxhome.com/file/2023/3/137273_0s.jpg)
springmvc+shiro自定义过滤器的实现代码
2021-08-11 21:23:11
![](https://img.aspxhome.com/file/2023/9/73059_0s.png)
C#中事件的定义和使用
2022-02-15 13:34:00
![](https://img.aspxhome.com/file/2023/6/104356_0s.jpg)
springboot下mybatis-plus如何打印sql日志和参数到日志文件
2023-06-15 12:34:05
![](https://img.aspxhome.com/file/2023/3/84213_0s.png)