新手的第二篇博客,为了更好的学习而写的,如果有什么错的地方希望大家指出
步骤如下:
1 在activity_main中新建button,id设为“tanchucaidan”
android:id="@+id/tanchucaidan" />
2 在layout中新建一个布局文件popupwindow
①新建linearlayout布局,在其中添加button和imageview 这时图片和按钮为水平排布,设置其位置为 android:orientation="horizontal">
②复制粘贴,实现产生相同效果。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:src="@mipmap/ic_launcher" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:src="@mipmap/ic_launcher" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button3" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:src="@mipmap/ic_launcher" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button2"/> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:src="@mipmap/ic_launcher" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tupian1"/> <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button4" /> </LinearLayout> </LinearLayout>
需要注意的是,所有的控件在layout里面写好之后在Mainactivity中进行定义+绑定+强制转换
↓↓↓示例如下
private Button button;
button= (Button) findViewById(R.id.tanchucaidan);
3 设置button的OnClickListener事件
button.setOnClickListener(new View.OnClickListener() {
定义view类
View view= LayoutInflater.from(MainActivity.this).inflate(R.layout.popupwindow,null);
此处inflate的作用是载入布局文件。
4 定义新建Popupwindow类并设置其大小
PopupWindow popupWindow=new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
5 设置与Popupwindow相关的方法
popupWindow.setFocusable(true);设置焦点
popupWindow.setOutsideTouchable(true);设置此界面外部是可以被点击的
popupWindow.setBackgroundDrawable(new BitmapDrawable()); 给此界面设置有一张空的背景图片
popupWindow.showAsDropDown(button);设置界面在此button 的底部出现
popupWindow.showAtLocation(button,Gravity.BOTTOM | Gravity.CENTER, 0,0);
设置界面在此界面的下方中部出现
运行时点击弹出菜单,底部便会显示出编辑好的界面