popWindowdemo
16lz
2021-01-23
xml文件
1.main.xml
2.pop.xml
3.(activity)PopwindowActivity.java
1.main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@android:color/white" android:orientation="horizontal" > <LinearLayout android:id="@+id/title_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:background="@drawable/bg" android:gravity="center"> <TextView android:id="@+id/title" android:text="@string/str_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textSize="@dimen/size_title" android:textColor="@android:color/white"/> <ImageView android:id="@+id/arrow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="5dip" android:background="@drawable/icon_arrow_down" /> </LinearLayout></LinearLayout>
2.pop.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:gravity="center" android:layout_width="fill_parent" android:layout_height="fill_parent"><!-- <ListViewandroid:id="@+id/pop_list" android:layout_width="fill_parent" android:layout_height="wrap_content"android:dividerHeight="2dip" android:cacheColorHint="#00000000" ></ListView> --> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:text="城市:" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:lines="1" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:text="地点:" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:lines="1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" 确 定 " /> </LinearLayout>
3.(activity)PopwindowActivity.java
import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import android.app.Activity;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.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.PopupWindow;import android.widget.PopupWindow.OnDismissListener;import android.widget.SimpleAdapter;import android.widget.Toast;public class PopwindowActivity extends Activity{private ImageView arrow;private boolean isOpenPop = false;private PopupWindow window;private ListView list;private LinearLayout title_layout;public static final String KEY = "key";ArrayList<Map<String, Object>> items = new ArrayList<Map<String, Object>>();Context mContext;@Overrideprotected void onCreate(Bundle savedInstanceState){// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.main);mContext = this;arrow = (ImageView) findViewById(R.id.arrow);title_layout = (LinearLayout) findViewById(R.id.title_layout);title_layout.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){// TODO Auto-generated method stubchangPopState(v);}});}/** * 更改Pop状态 * */public void changPopState(View v){isOpenPop = !isOpenPop;if (isOpenPop){arrow.setBackgroundResource(R.drawable.icon_arrow_up);popAwindow(v);} else{arrow.setBackgroundResource(R.drawable.icon_arrow_down);if (window != null){window.dismiss();}}}private void popAwindow(View parent){if (window == null){LayoutInflater lay = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);View v = lay.inflate(R.layout.pop, null);window = new PopupWindow(v, 260, 300);int x = (int) getResources().getDimension(R.dimen.pop_x);int y = (int) getResources().getDimension(R.dimen.pop_y);window = new PopupWindow(v, x, y);}window.setBackgroundDrawable(getResources().getDrawable(R.drawable.pop_bg));window.setFocusable(true);window.setOutsideTouchable(false);window.setOnDismissListener(new OnDismissListener(){@Overridepublic void onDismiss(){// TODO Auto-generated method stubisOpenPop = false;arrow.setBackgroundResource(R.drawable.icon_arrow_down);}});window.update();window.showAtLocation(parent, Gravity.CENTER_HORIZONTAL | Gravity.TOP,0, (int) getResources().getDimension(R.dimen.pop_layout_y));}}
更多相关文章
- android8.0屏蔽状态栏下拉
- Android手机屏幕的三种状态
- Android沉浸式状态栏(二)
- 沉浸式状态栏StatusBar
- Android全屏,隐藏状态栏和标题栏
- Android沉浸式状态栏、导航栏
- android 状态栏 时间 错误 adb连接
- Android状态机
- android设置状态栏颜色