在程序里弹出一个小窗口,像系统的MediaController一样,具体做法:先在mail.xml的layout布局里加一个id,这个到后面会用到的,
1 <?xml version="1.0" encoding="utf-8"?>2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"3 android:orientation="vertical"4 android:layout_width="fill_parent"5 android:layout_height="fill_parent"6 android:id="@+id/linear"<!--这个一定要加-->7 >接着布局文件里写一个control.xml文件,里面放一些要显示的widget,
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="fill_parent" 5 android:layout_height="fill_parent" 6 android:gravity="center" 7 android:background="#00000000" 8 > 9 <LinearLayout10 android:orientation="horizontal"11 android:layout_width="fill_parent"12 android:layout_height="wrap_content"13 android:gravity="center_horizontal"14 android:layout_marginTop="5dip"15 android:layout_marginBottom="5dip"16 >17 <ImageButton18 android:id="@+id/sounddown"19 android:layout_width="wrap_content"20 android:layout_height="wrap_content"21 android:src="@drawable/sounddown"22 />23 24 <TextView25 android:id="@+id/textNow"26 android:layout_width="wrap_content"27 android:layout_height="wrap_content"28 android:textSize="20sp"29 android:text=" "30 />31 <SeekBar32 android:id="@+id/seekbar"33 android:layout_width="500dip"34 android:layout_height="wrap_content"35 android:max="10000"36 />37 <TextView38 android:id="@+id/textAll"39 android:layout_width="wrap_content"40 android:layout_height="wrap_content"41 android:textSize="20sp"42 android:text=" "43 />44 <ImageButton45 android:id="@+id/soundup"46 android:layout_width="wrap_content"47 android:layout_height="wrap_content"48 android:src="@drawable/soundup"49 />50 </LinearLayout>51 <LinearLayout52 android:orientation="horizontal"53 android:layout_width="fill_parent"54 android:layout_height="wrap_content"55 android:gravity="center_horizontal"56 android:background="#0000003D" 57 >58 59 </LinearLayout>60 61 </LinearLayout>最后就是java文件,
1 public class MainActivity extends Activity { 2 /** Called when the activity is first created. */ 3 private Button show; 4 public PopupWindow mPopupWindow; 5 private boolean boo=true; 6 @Override 7 public void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.main);10 show = (Button) findViewById(R.id.button);11 show.setOnClickListener(new Button.OnClickListener(){12 13 @Override14 public void onClick(View v) {15 // TODO Auto-generated method stub16 if(boo){17 boo=false;18 check();19 mPopupWindow.showAtLocation(findViewById(R.id.linear), Gravity.RIGHT|Gravity.BOTTOM, 0,0);20 }else{21 boo=true;22 mPopupWindow.dismiss();23 }24 25 }});26 }27 28 private void check(){29 if(mPopupWindow==null){30 mPopupWindow=new PopupWindow(getLayoutInflater().inflate(R.layout.controler, null),LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);31 }32 if(mPopupWindow.isShowing()){33 mPopupWindow.dismiss();34 }35 }36 }
如果要响应PopupWindow里的widget,可以用LayoutInflater过滤xml文件,再用View view=getLayoutInflater().inflate(resource, root);就可以了。