一.概述
先给大家看一下效果图:
点击中间的显示弹框按钮,从底部弹出来一个对话框,用户可以点击拍照或者从相册选择进行相应的操作,下面看看怎么实现。
二.代码实现
主页面布局文件,很简单,一个按钮,响应点击事件:
<&#63;xml version="1.0" encoding="utf-8"&#63;>
接下来看对话框的布局:
<&#63;xml version="1.0" encoding="utf-8"&#63;>
根布局为垂直的线性布局,加了一个背景,白色矩形,四个角弧度为5dp,代码如下
<&#63;xml version="1.0" encoding="utf-8"&#63;>
线性布局中是两个TextView和一条横线。也很简单
下面是java代码:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private View inflate; private TextView choosePhoto; private TextView takePhoto; private Dialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void show(View view){ dialog = new Dialog(this,R.style.ActionSheetDialogStyle); //填充对话框的布局 inflate = LayoutInflater.from(this).inflate(R.layout.dialog_layout, null); //初始化控件 choosePhoto = (TextView) inflate.findViewById(R.id.choosePhoto); takePhoto = (TextView) inflate.findViewById(R.id.takePhoto); choosePhoto.setOnClickListener(this); takePhoto.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.takePhoto: Toast.makeText(this,"点击了拍照",Toast.LENGTH_SHORT).show(); break; case R.id.choosePhoto: Toast.makeText(this,"点击了从相册选择",Toast.LENGTH_SHORT).show(); break; } dialog.dismiss(); } }
窗口的样式:
对话框出现动画代码:
<&#63;xml version="1.0" encoding="utf-8"&#63;>
对话框消失的代码:
<&#63;xml version="1.0" encoding="utf-8"&#63;>
三.总结
本次实现的Dialog主要是通过TextView来实现的,并且没有加入状态选择器以及取消按钮,在下篇文章中将对对话框的表现形式稍微进行一下改动。以适应项目中的开发需求。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。