当前位置: 代码迷 >> Iphone >> 仿Iphone从银幕底部弹出半透明的PopupWindow
  详细解决方案

仿Iphone从银幕底部弹出半透明的PopupWindow

热度:78   发布时间:2016-04-25 06:02:44.0
仿Iphone从屏幕底部弹出半透明的PopupWindow

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;			}		}}}



 

  相关解决方案