划出一个半透明的PopupWindow

来源:互联网 发布:订购火车票的软件 编辑:程序博客网 时间:2024/04/27 15:12


划出一个半透明的PopupWindow

antkingwei 发布于 2011年12月07日 21时, 7评/4587阅
分享到 
收藏+25
踩顶0
最近看到几篇关于半透明的PopupWindow,没太理解,最后还是自己写一个Demo吧 
喜欢得人可以交流,Android专业开发群1:150086842
Android专业开发群2:219277004
标签:Android SDK

代码片段(5)

[图片] 未命名1.jpg

[代码] 主类

01package com.android.wei.popupwindow;
02import android.app.Activity;
03import android.app.Dialog;
04import android.content.Context;
05 
06import android.os.Bundle;
07import android.view.Gravity;
08import android.view.LayoutInflater;
09import android.view.View;
10import android.view.View.OnClickListener;
11import android.view.animation.AnimationUtils;
12 
13import android.widget.Button;
14import android.widget.PopupWindow;
15import android.widget.ViewFlipper;
16 
17public class MyActivity extends Activity implements OnClickListener{
18  private Button popupButton;
19  private Button dialogButton;
20  private LayoutInflater layoutInflater;
21  private ViewFlipper viewFilpper;
22    public void onCreate(Bundle savedInstanceState) {
23        super.onCreate(savedInstanceState);
24        setContentView(R.layout.main);
25        popupButton = (Button) this.findViewById(R.id.button1);
26        dialogButton = (Button) this.findViewById(R.id.button2);
27        popupButton.setOnClickListener(this);
28        dialogButton.setOnClickListener(this);
29    }
30 
31    public void onClick(View v) {
32        Context context = MyActivity.this;
33        // TODO Auto-generated method stub
34        if(v.getId()==R.id.button1){
35             
36        layoutInflater = LayoutInflater.from(context);
37        PopupWindow popup= new PopupWindow(MyActivity.this);
38        View popView = layoutInflater.inflate(R.layout.popupwindow,null);
39        popup.setContentView(popView);
40             
41            viewFilpper = (ViewFlipper) popView.findViewById(R.id.viewFlipper);
42            popup.setAnimationStyle(R.anim.popupmenu);
43            viewFilpper.setInAnimation(AnimationUtils.loadAnimation(context, R.anim.menu_in));
44            viewFilpper.setOutAnimation(AnimationUtils.loadAnimation(context, R.anim.menu_out));
45            viewFilpper.setFlipInterval(60000);
46            popup.setFocusable(true);
47            popup.setWidth(120);
48            popup.setHeight(80);
49            popup.showAtLocation(MyActivity.this.findViewById(R.id.button1), Gravity.CENTER, 00);
50             
51            viewFilpper.startFlipping();
52         
53             
54        }
55        if(v.getId()==R.id.button2){
56            layoutInflater = LayoutInflater.from(context);
57            Dialog dialog = new Dialog(MyActivity.this);
58            View popView = layoutInflater.inflate(R.layout.popupwindow, null);
59            dialog.setContentView(popView);
60            dialog.setCancelable(true);
61            viewFilpper = (ViewFlipper) popView.findViewById(R.id.viewFlipper);
62            viewFilpper.setInAnimation(AnimationUtils.loadAnimation(context, R.anim.menu_in));
63            viewFilpper.setOutAnimation(AnimationUtils.loadAnimation(context, R.anim.menu_out));
64            viewFilpper.setFlipInterval(60000);
65            dialog.show();
66            viewFilpper.startFlipping();
67             
68        }
69         
70    }
71}

[代码] 主配置文件

01<?xml version="1.0" encoding="utf-8"?>
02<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
03    android:orientation="vertical"
04    android:background="@drawable/background"
05    android:layout_width="fill_parent"
06    android:layout_height="fill_parent"
07    >
08<TextView 
09    android:layout_width="fill_parent"
10    android:layout_height="wrap_content"
11    android:text="@string/hello"
12    />
13<ImageButton android:layout_width="wrap_content"
14android:background="#00000000"
15android:id="@+id/imageView1" android:layout_height="wrap_content"android:src="@drawable/wei" android:layout_gravity="center"/>
16<Button android:id="@+id/button1"
17 android:background="#b0000000"
18 android:layout_margin="5px"
19android:text="弹出PopupWindow" android:layout_height="60px"android:layout_width="fill_parent"></Button>
20<Button android:id="@+id/button2"
21 android:background="#b0000000"
22 android:layout_margin="5px"
23android:text="弹出Dialog" android:layout_height="60px"android:layout_width="fill_parent"></Button>
24</LinearLayout>

[代码] popupWindow配置文件

01<?xml version="1.0" encoding="utf-8"?>
02      
03          <ViewFlipperxmlns:android="http://schemas.android.com/apk/res/android"
04                  android:id="@+id/viewFlipper"
05                   android:layout_width="fill_parent"
06                   
07                   android:layout_height="fill_parent">
08                   <LinearLayout android:orientation="horizontal"
09                   android:layout_width="wrap_content"android:gravity="center"
10                   android:layout_height="wrap_content"android:layout_gravity="center"
11                   >
12           <LinearLayout
13            android:orientation="vertical"
14            android:layout_width="wrap_content"
15            android:layout_height="wrap_content">     
16           <Button android:id="@+id/deleat"
17           android:layout_width="wrap_content"
18           android:layout_height="wrap_content"
19           android:background="@drawable/menu_delete"      
20           />
21           <TextView
22              android:layout_width="wrap_content"
23              android:layout_height="wrap_content"
24              android:layout_gravity="center_horizontal"
25              android:text="删除"/>
26           </LinearLayout>
27           <Button android:id="@+id/speed"
28           android:layout_width ="wrap_content"
29           android:layout_height="wrap_content"
30           android:text="添加"/>
31                 </LinearLayout>
32                 </ViewFlipper>
33              

[代码] 一点说明

1对于Button和ImageButton 还有一些View 设置半透明或者透明都是通过
2android:background="#b0000000" 这是就是半透明
3android:background="#00000000" 就是全透明
4android:background="#FFFFFFFF" 就是不透明
5介于中间的可以来自己设置透明度
原创粉丝点击