直接上代码

public class MainActivity extends Activity implements OnClickListener {private Button btnPopup;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btnPopup = (Button) findViewById(R.id.btn);btnPopup.setOnClickListener(this);}public void onClick(View v) {showDialog();}private void showDialog() {View view = getLayoutInflater().inflate(R.layout.photo_choose_dialog, null);Dialog dialog = new Dialog(this, R.style.transparentFrameWindowStyle);dialog.setContentView(view, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));Window window = dialog.getWindow();// 设置显示动画window.setWindowAnimations(R.style.main_menu_animstyle);WindowManager.LayoutParams wl = window.getAttributes();wl.x = 0;wl.y = getWindowManager().getDefaultDisplay().getHeight();// 以下这两句是为了保证按钮可以水平满屏wl.width = ViewGroup.LayoutParams.MATCH_PARENT;wl.height = ViewGroup.LayoutParams.WRAP_CONTENT;// 设置显示位置dialog.onWindowAttributesChanged(wl);// 设置点击外围解散dialog.setCanceledOnTouchOutside(true);dialog.show();}}

activity_main.xml 的布局文件就不上传了 就一个button, photo_choose_dialog.xml 布局文件:

<?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="match_parent"    android:background="#00000000"    android:gravity="bottom"    android:orientation="vertical"    android:padding="5dip" >    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@drawable/photo_gallery_selector"        android:paddingBottom="10dip"        android:paddingTop="10dip"        android:text="图库"        android:textSize="16sp" />    <TextView        android:layout_width="match_parent"        android:layout_height="0.5dip"        android:background="#DAD9DB" />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@drawable/photo_camera_selector"        android:paddingBottom="10dip"        android:paddingTop="10dip"        android:text="拍照"        android:textSize="16sp" />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="5dip"        android:background="@drawable/photo_cancel_selector"        android:paddingBottom="10dip"        android:paddingTop="10dip"        android:text="取消"        android:textSize="16sp" /></LinearLayout>
弹出的效果图



图中button 设置了圆角

代码如下:

<?xml version="1.0" encoding="UTF-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle" >    <gradient        android:angle="90"        android:endColor="#EBEBEB"        android:startColor="#EBEBEB" />     <corners        android:bottomLeftRadius="5dp"        android:bottomRightRadius="5dp"        android:topLeftRadius="0dp"        android:topRightRadius="0dp" /></shape>

style 文件:

<?xml version="1.0" encoding="utf-8"?><resources>    <style name="transparentFrameWindowStyle" parent="android:style/Theme.Dialog">        <item name="android:windowBackground">@drawable/photo_choose_bg</item>    </style>    <style name="main_menu_animstyle">        <item name="android:windowEnterAnimation">@anim/photo_dialog_in_anim</item>        <item name="android:windowExitAnimation">@anim/photo_dialog_out_anim</item>    </style></resources>

动画效果文件:

photo_dialog_in_anim.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="500"        android:fromXDelta="0"        android:fromYDelta="1000"        android:toXDelta="0"        android:toYDelta="0" /></set>

photo_dialog_out_anim.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="500"        android:fromXDelta="0"        android:fromYDelta="0"        android:toXDelta="0"        android:toYDelta="1000" /></set>

photo_choose_bg.xml 文件

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" >    <solid android:color="#00000000" />    <corners android:radius="20dip" />    <padding        android:bottom="5dp"        android:left="5dp"        android:right="5dp"        android:top="5dp" /></shape>



更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android(安卓)音乐播放器。
  4. android 安装apk代码
  5. Android统计表格MPAndroidChart解析
  6. android 代码 退出程序
  7. Android实现widget定时更新
  8. Android(安卓)WebView相关属性
  9. Android(安卓)9 读写SD卡文件

随机推荐

  1. 农村物流配送管理如何走出困境?捷码有方案
  2. 小推理:React18比老版React更优秀的一个地
  3. VScode下载、安装及常用插件安装
  4. 使用&&判断的场景差异
  5. html 结构解析
  6. Markdown的使用
  7. php运行原理、php变量类型小结
  8. 前端缓存机制提升网站性能 - Service Wor
  9. Markdown基本运用与HTML描述及标签
  10. 程序员必备基础Markdown与html的开始