欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

划出一个半透明的PopupWindow,划出popupwindow

来源: 开发者 投稿于  被查看 42362 次 评论:201

划出一个半透明的PopupWindow,划出popupwindow


最近看到几篇关于半透明的PopupWindow,没太理解,最后还是自己写一个Demo吧
喜欢得人可以交流,Android专业开发群1:150086842 Android专业开发群2:219277004

1.[图片] 未命名1.jpg

2.主类

package com.android.wei.popupwindow;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;

import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AnimationUtils;

import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.ViewFlipper;

public class MyActivity extends Activity implements OnClickListener{
  private Button popupButton;
  private Button dialogButton;
  private LayoutInflater layoutInflater;
  private ViewFlipper viewFilpper;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        popupButton = (Button) this.findViewById(R.id.button1);
        dialogButton = (Button) this.findViewById(R.id.button2);
        popupButton.setOnClickListener(this);
        dialogButton.setOnClickListener(this);
    }

	public void onClick(View v) {
		Context context = MyActivity.this;
		// TODO Auto-generated method stub
		if(v.getId()==R.id.button1){
			
		layoutInflater = LayoutInflater.from(context);
		PopupWindow popup= new PopupWindow(MyActivity.this);
		View popView = layoutInflater.inflate(R.layout.popupwindow, null);
		popup.setContentView(popView);
			
			viewFilpper = (ViewFlipper) popView.findViewById(R.id.viewFlipper);
			popup.setAnimationStyle(R.anim.popupmenu);
			viewFilpper.setInAnimation(AnimationUtils.loadAnimation(context, R.anim.menu_in));
	    	viewFilpper.setOutAnimation(AnimationUtils.loadAnimation(context, R.anim.menu_out));
			viewFilpper.setFlipInterval(60000);
	    	popup.setFocusable(true);
			popup.setWidth(120);
			popup.setHeight(80);
			popup.showAtLocation(MyActivity.this.findViewById(R.id.button1), Gravity.CENTER, 0, 0);
			
			viewFilpper.startFlipping();
		
			
		}
		if(v.getId()==R.id.button2){
			layoutInflater = LayoutInflater.from(context);
			Dialog dialog = new Dialog(MyActivity.this);
			View popView = layoutInflater.inflate(R.layout.popupwindow, null);
			dialog.setContentView(popView);
			dialog.setCancelable(true);
			viewFilpper = (ViewFlipper) popView.findViewById(R.id.viewFlipper);
			viewFilpper.setInAnimation(AnimationUtils.loadAnimation(context, R.anim.menu_in));
	    	viewFilpper.setOutAnimation(AnimationUtils.loadAnimation(context, R.anim.menu_out));
			viewFilpper.setFlipInterval(60000);
			dialog.show();
			viewFilpper.startFlipping();
			
		}
		
	}
}

3.主配置文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="@drawable/background"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<ImageButton android:layout_width="wrap_content" 
android:background="#00000000"
android:id="@+id/imageView1" android:layout_height="wrap_content" android:src="@drawable/wei" android:layout_gravity="center"/>
<Button android:id="@+id/button1" 
 android:background="#b0000000"
 android:layout_margin="5px"
android:text="弹出PopupWindow" android:layout_height="60px" android:layout_width="fill_parent"></Button>
<Button android:id="@+id/button2" 
 android:background="#b0000000"
 android:layout_margin="5px"
android:text="弹出Dialog" android:layout_height="60px" android:layout_width="fill_parent"></Button>
</LinearLayout>

4.popupWindow配置文件

<?xml version="1.0" encoding="utf-8"?>
     
          <ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android" 
                  android:id="@+id/viewFlipper"
                   android:layout_width="fill_parent"
                  
                   android:layout_height="fill_parent">
                   <LinearLayout android:orientation="horizontal"
                   android:layout_width="wrap_content" android:gravity="center"
                   android:layout_height="wrap_content" android:layout_gravity="center"
                   >
           <LinearLayout 
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">      
           <Button android:id="@+id/deleat"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:background="@drawable/menu_delete"       
           />
           <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_gravity="center_horizontal"
              android:text="删除"/>
           </LinearLayout>
           <Button android:id="@+id/speed"
           android:layout_width ="wrap_content"
           android:layout_height="wrap_content"
           android:text="添加"/>
                 </LinearLayout>
                 </ViewFlipper>
              

5.一点说明

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

用户评论