zoukankan      html  css  js  c++  java
  • 弹出小窗口,PopupWindow的使用

    在程序里弹出一个小窗口,像系统的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 <LinearLayout
    10 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 <ImageButton
    18 android:id="@+id/sounddown"
    19 android:layout_width="wrap_content"
    20 android:layout_height="wrap_content"
    21 android:src="@drawable/sounddown"
    22 />
    23
    24 <TextView
    25 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 <SeekBar
    32 android:id="@+id/seekbar"
    33 android:layout_width="500dip"
    34 android:layout_height="wrap_content"
    35 android:max="10000"
    36 />
    37 <TextView
    38 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 <ImageButton
    45 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 <LinearLayout
    52 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 @Override
    14 public void onClick(View v) {
    15 // TODO Auto-generated method stub
    16   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);就可以了。
  • 相关阅读:
    leetcode刷题笔记五十八 最后一个单词的长度
    leetcode刷题笔记五十六和五十七 合并区间与插入区间
    linux根据端口号,或进程名获取进程pid
    linux系统简单配置——centos7
    日常知识点记录
    实用代码-获取某一个对象中的信息
    java获取svn中的数据
    idea快捷键整理,以及eclipse快捷键对比,持续更新中
    ajax发送同步请求
    基于 pygame 设计贪吃蛇游戏
  • 原文地址:https://www.cnblogs.com/etgyd/p/2009747.html
Copyright © 2011-2022 走看看