自己之前一直想要实现这个效果,纠结于实现方式。现在实现完成和诸位分享!
1.首先创建一个布局文件,dialog的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_menu"
android:gravity="center"
android:orientation="vertical"
android:padding="100dip" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dialog"
android:textColor="#FF0000"
android:textSize="30sp" />
</LinearLayout>
2.主界面布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:context=".MainActivity" >
<Button
android:id="@+id/btn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dip"
android:text="弹出" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="50dip"
android:text="这是测试的一个Dialog弹出效果"
android:textColor="#00FF00"
android:textSize="20sp" />
</RelativeLayout>
3.显示dialog
private void showDialog()
{
View view = getLayoutInflater().inflate(R.layout.item_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();
//设置显示位置
dialog.onWindowAttributesChanged(wl);
//设置点击外围消散
dialog.setCanceledOnTouchOutside(true);
dialog.show();
}
代码下载地址:http://pan.baidu.com/share/link?shareid=598339&uk=2315377692