写输入popupwindow 的布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical"> <TextView android:id="@+id/camera" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:padding="@dimen/dp_15" android:text="拍照" android:textColor="@color/bottom_blue" android:textSize="@dimen/sp_20" /> <View android:layout_width="match_parent" android:layout_height="@dimen/dp_1" android:background="@color/error_bg" /> <TextView android:id="@+id/pic" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:padding="@dimen/dp_15" android:text="相册" android:textColor="@color/bottom_blue" android:textSize="@dimen/sp_20" /> <View android:layout_width="match_parent" android:layout_height="@dimen/dp_1" android:background="@color/error_bg" /> <TextView android:id="@+id/cancel" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:padding="@dimen/dp_15" android:text="取消" android:textColor="@color/bottom_blue" android:textSize="@dimen/sp_20" /> </LinearLayout>
//写入布局后,需要设置它的样式
<style name="DialogTheme" parent="@android:style/Theme.Dialog"> <!-- 边框 --> <item name="android:windowFrame">@null</item> <!-- 是否浮现在activity之上 --> <item name="android:windowIsFloating">true</item> <!-- 半透明 --> <item name="android:windowIsTranslucent">true</item> <!-- 无标题 --> <item name="android:windowNoTitle">true</item> <item name="android:background">@android:color/transparent</item> <!-- 背景透明 --> <item name="android:windowBackground">@android:color/transparent</item> <!-- 模糊 --> <item name="android:backgroundDimEnabled">true</item> <!-- 遮罩层 --> <item name="android:backgroundDimAmount">0.5</item> </style>
//接下来就要在我们的点击事件里写入主要代码
import android.app.Dialog; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.facebook.drawee.view.SimpleDraweeView; import butterknife.BindView; import butterknife.ButterKnife; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private View inflate; private TextView camera; private TextView pic; private TextView cancel; private Dialog dialog; private SimpleDraweeView img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); img = findViewById(R.id.images); img.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { show(v); } }); } public void show(View view){ dialog = new Dialog(this,R.style.DialogTheme); //填充对话框的布局 inflate = LayoutInflater.from(this).inflate(R.layout.popuwind, null); //初始化控件 camera = (TextView) inflate.findViewById(R.id.camera); pic = (TextView) inflate.findViewById(R.id.pic); cancel = (TextView) inflate.findViewById(R.id.cancel); camera.setOnClickListener(this); pic.setOnClickListener(this); cancel.setOnClickListener(this); //将布局设置给Dialog dialog.setContentView(inflate); //获取当前Activity所在的窗体 Window dialogWindow = dialog.getWindow(); //设置Dialog从窗体底部弹出 dialogWindow.setGravity( Gravity.BOTTOM); //获得窗体的属性 WindowManager.LayoutParams lp = dialogWindow.getAttributes(); lp.y = 20;//设置Dialog距离底部的距离 // 将属性设置给窗体 dialogWindow.setAttributes(lp); dialog.show();//显示对话框 } @Override public void onClick(View view) { switch (view.getId()){ case R.id.camera: Toast.makeText(this,"点击了拍照",Toast.LENGTH_SHORT).show(); break; case R.id.pic: Toast.makeText(this,"点击了从相册选择",Toast.LENGTH_SHORT).show(); break; case R.id.cancel: dialog.dismiss(); break; } } }
布局部分有屏幕适配,颜色根据自己需要设置