Ownsight

?找回密码
?立即注册
搜索
热搜: 活动 交友 discuz
查看: 923|回复: 0
打印 上一主题 下一主题

android dialog style

[复制链接]

803

主题

903

帖子

3201

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3201
跳转到指定楼层
楼主
发表于 2018-1-10 06:27:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
转自:http://blog.csdn.net/zhongwn/article/details/38239389



? ?
? ?
? ???
? ???
样式:转自:http://www.cnblogs.com/0616--ata ... /12/12/2815224.html
以上是自定义Dialgog可以使用自定义样式:

关于@android:style/Animation.Translucent 重要,Dialog进出的显示动画要特别注意,可以自定义Dialog进出的动画,但是item的名字必须和下面的一样,以确定Android系统能够认识出来。

<>
name="Animation.Translucent">
? ?? ???<>
name="windowEnterAnimation">@anim/translucent_enter
? ?? ???<>
name="windowExitAnimation">@anim/translucent_exit
? ?
----------------------------------------------

Activity 自定义样式:

<>
name="ThemeActivity">
? ???<>
name="android:windowAnimationStyle">@style/AnimationActivity
? ???<>
name="android:windowNoTitle">true
? ???<>
name="android:windowFullscreen">true
? ???<>
name="android:windowContentOverlay">@null
? ???<>
name="android:windowIsTranslucent">true

同样的每个item对应的name不能变,以保证Android系统能够辨认出来。

<>
name="AnimationActivity" parent="@android:style/Animation.Activity">
? ?? ???<>
name="android:activityOpenEnterAnimation">@anim/slideinright
第一次创建新Activity是调用的动画
? ?? ?
@anim/slideoutright
调用finish关闭该Activity是调用的动画
? ?? ?
@anim/slideoutleft??
activity还没有finish()下退出效果
? ?? ???<>
name="android:activityCloseEnterAnimation">@anim/slideinleft

上一个activity返回进入效果??



转自:http://www.cnblogs.com/0616--ata ... /12/12/2815224.html









转自:http://blog.csdn.net/ooo4561213/article/details/6654961

首先自定义一个类,j继承自dialog类。
设置透明度,主要设置的是dialog自身的透明度

Java代码??收藏代码
WindowManager.LayoutParams lp=getWindow().getAttributes();??
? ?? ?? ?? ?? ? lp.alpha=1.0f;??
? ?? ?? ?? ?? ? getWindow().setAttributes(lp);??
[java] view plaincopy
WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();??
? ?? ?? ?? ?? ? lp.alpha=1.0f;??
? ?? ?? ?? ?? ? dialog.getWindow().setAttributes(lp);??

? ?? ?? ?? ?? ?
alpha在0.0f到1.0f之间。1.0完全不透明,0.0f完全透明,自身不可见。


设置幕布,也就是本dialog的背景层。

Java代码??收藏代码

? ?? ?? ?? ?? ?setContentView(R.layout.dialog);? ?? ?? ?? ?
? ?? ?? ? WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
? ?? ?? ?getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

? ?? ?? ???lp.dimAmount=1.0f;??
? ?? ?? ???getWindow().setAttributes(lp);??
[java] view plaincopy
dialog.setContentView(R.layout.dialog);??
? ?? ?? ?? ?? ?? ?
? ?? ?? ?? ?? ? WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();??
? ?? ?? ?? ?? ? lp.dimAmount=1.0f;??
? ?? ?? ?? ?? ? dialog.getWindow().setAttributes(lp);??
? ?? ?? ?? ?? ? dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);??


dimAmount在0.0f和1.0f之间,0.0f完全不暗,即背景是可见的 ,1.0f时候,背景全部变黑暗。
如果要达到背景全部变暗的效果,需要设置??dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
,否则,背景无效果。

此方法可以用来设置浮动层。呵呵!

例子:
? ? public void createDialog(Context context){
Dialog dialog??= new Dialog(context,R.style.transparent);
View view = LayoutInflater.from(context).inflate(R.layout.dialog_test_item, null);
dialog.setContentView(view);
WindowManager.LayoutParams a = dialog.getWindow().getAttributes();
? ?? ?? ?? ?? ???a.gravity = Gravity.TOP;//设置对话框显示的位置
? ?? ?? ?? ?? ? a.dimAmount = 0.0f; // 去背景遮盖:即背景不会遮盖activity的内容
? ?? ?? ?? ?? ? a.alpha = 0.7f;//window 透明度
? ?? ?? ?? ?? ?dialog.getWindow().setAttributes(a);
? ?? ?dialog.show();
? ?? ?dialog.setOnCancelListener(null);//关闭对话框
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表