您的位置:首页 > 移动开发 > Android开发

Android 自定义dialog

2016-12-02 17:08 197 查看
1、 显示dialog方法

private void showMyDialog() {
Dialog dialog = new Dialog(MainActivity.this, R.style.my_dialog);
LinearLayout view = (LinearLayout) LayoutInflater.from(MainActivity.this).
inflate(R.layout.layout_dialog, null);
view.findViewById(R.id.btn_open_camera).setOnClickListener(this);
view.findViewById(R.id.btn_choose_img).setOnClickListener(this);
view.findViewById(R.id.btn_cancel).setOnClickListener(this);
dialog.setContentView(view);
Window dialogWindow = dialog.getWindow();
dialogWindow.setGravity(Gravity.BOTTOM);
dialogWindow.setWindowAnimations(R.style.dialogstyle); // 添加动
WindowManager.LayoutParams lp = dialogWindow.getAttributes(); // 获取对话框当前的参数值
lp.x = 0; // 新位置X坐标
lp.y = -20; // 新位置Y坐标
lp.width = getResources().getDisplayMetrics().widthPixels; // 宽度
view.measure(0, 0);
lp.height = view.getMeasuredHeight();
lp.alpha = 9f; // 透明度
dialogWindow.setAttributes(lp);
dialog.setCanceledOnTouchOutside(true);//点击空白区域可取消
dialog.show();
}


2、 my_dialog样式

<style name="my_dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">true</item>
</style>


3、 layout_dialog.xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:gravity="center"
android:orientation="vertical"
android:padding="20dp"
tools:context="com.ywj.animastartactivity.MainActivity">

<Button
android:id="@+id/btn_open_camera"
android:layout_width="match_parent"
android:layout_height="42dp"

android:gravity="center"
android:text="拍照"
android:textColor="#ffffff"
android:textSize="18sp" />

<Button
android:id="@+id/btn_choose_img"
android:layout_width="match_parent"
android:layout_height="42dp"
android:layout_marginTop="16dp"

android:gravity="center"
android:text="从相册中选择"
android:textColor="#ffffff"
android:textSize="18sp" />

<Button
android:id="@+id/btn_cancel"
android:layout_width="match_parent"
android:layout_height="42dp"
android:layout_marginTop="16dp"
android:gravity="center"
android:text="取消"
android:textColor="#ffffff"
android:textSize="18sp" />
</LinearLayout>


4、dialogstyle样式

<style name="dialogstyle" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/fade_in</item>
<item name="android:windowExitAnimation">@anim/fade_out</item>
</style>


5、fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="100%p"  android:duration="400"/>
</set>


6、fade_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:toYDelta="100%p"       android:duration="400"/>
</set>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: