自定义dialog布局,创建动画,自下向上弹出
style:
<style name="mystyle" parent="android:Animation">
<item name="@android:windowEnterAnimation">@anim/dialog_enter</item> <!-- 进入时的动画 --><item name="@android:windowExitAnimation">@anim/dialog_exit</item> <!-- 退出时的动画 -->
</style>
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">false</item><!--半透明-->
<item name="android:windowNoTitle">true</item><!--无标题-->
<item name="android:background">@null</item>
<item name="android:windowBackground">@null</item>
<item name="android:backgroundDimEnabled">false</item><!-- 周围变暗 -->
</style>
<!-- 弹出动画dialog_enter -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- fromYDelta指的是父容器,100%表示父容器的底部 -->
<translate
android:fromYDelta="100%p"
android:duration="400"
/>
</set>
<!-- 退出动画dialog_exit -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- fromYDelta指的是父容器,100%表示父容器的底部 -->
<translate
android:toYDelta="100%p"
android:duration="400"
/>
</set>
dialog布局:
<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">
<LinearLayout android:background="#ffffff"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<Button
android:id="@+id/Button02"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/Button01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
</RelativeLayout>
java代码:
public class MainActivity extends Activity
{
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
Dialog dialog = new Dialog(MainActivity.this, R.style.dialog);
dialog.setContentView(R.layout.setting);
Window window = dialog.getWindow();
window.setGravity(Gravity.BOTTOM); //此处可以设置dialog显示的位置
window.setWindowAnimations(R.style.mystyle); //添加动画
dialog.show();
}
});
}
}