自定义修改安卓弹出框的样式

效果图:

1.在style.xml下添加

<!-- 自定义弹出样式 -->
<style name="MyDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<!--是否浮在窗口之上-->
<!--<item name="android:windowIsFloating">true</item>-->
<!--半透明-->
<!--<item name="android:windowIsTranslucent">true</item>-->
<!--是否显示title-->
<item name="android:windowNoTitle">true</item>
<!--dialog之外没有焦点的区域是否罩上黑色半透明-->
<item name="android:background">@color/white</item>
<item name="android:textColor">@color/gray</item>
<item name="android:textSize">@dimen/f24</item>
<!-- 这里是修改顶部标题背景颜色,具体颜色自己定,可以是图片 -->
<item name="android:topDark">@color/blue_alert</item>
<!-- 这里是修改内容区域背景颜色 -->
<item name="android:layout_gravity">center</item>
<item name="buttonBarButtonStyle">@color/white</item>
</style>

 2.在主体配置里引入自定义的AlertDialog主题

3.java代码写法

/**
* 默认的弹出窗口
* @param view
*/
public void alertDialog(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("弹出窗");
builder.setMessage("提示信息!");
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
System.out.println("确认执行函数");
}
}).setNegativeButton("取消", null);
builder.show();
} /**
* 自定义样式的弹出窗
* @param view
*/
public void alertDialog2(View view) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 自定义 title样式
TextView title = new TextView(this);
title.setText("自定义弹出窗");
title.setTextSize(24);
title.setGravity(Gravity.CENTER);
title.setPadding(0,20,0,20);
builder.setCustomTitle(title);
// 中间的信息以一个view的形式设置进去
TextView msg = new TextView(this);
msg.setText("自定义弹出提示信息");
msg.setTextSize(24);
msg.setGravity(Gravity.CENTER);
msg.setPadding(20, 40, 20, 40);
builder.setView(msg); builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
System.out.println("确认执行函数");
}
}).setNegativeButton("取消", null);
// 调用 show()方法后得到 dialog对象
AlertDialog dialog = builder.show();
final Button positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
final Button negativeButton=dialog.getButton(AlertDialog.BUTTON_NEGATIVE);
LinearLayout.LayoutParams positiveParams =(LinearLayout.LayoutParams)positiveButton.getLayoutParams();
positiveParams.gravity = Gravity.CENTER;
positiveParams.setMargins(10,10,10,10);
positiveParams.width = 0;
// 安卓下面有三个位置的按钮,默认权重为 1,设置成 500或更大才能让两个按钮看起来均分
positiveParams.weight = 500;
LinearLayout.LayoutParams negativeParams =(LinearLayout.LayoutParams)negativeButton.getLayoutParams();
negativeParams.gravity = Gravity.CENTER;
negativeParams.setMargins(10,10,10,10);
negativeParams.width = 0;
negativeParams.weight = 500;
positiveButton.setLayoutParams(positiveParams);
negativeButton.setLayoutParams(negativeParams);
positiveButton.setBackgroundColor(Color.parseColor("#FF733E"));
positiveButton.setTextColor(Color.parseColor("#FFFFFF"));
negativeButton.setBackgroundColor(Color.parseColor("#DDDDDD"));
}

最新文章

  1. Java中的List操作
  2. Android zxing 解析二维码,生成二维码极简demo
  3. HRV基础
  4. DDL DML DCL语句
  5. Javascript 笔记与总结(2-3)Javascript 运算符、控制结构与对象操作
  6. Virtualenv介绍
  7. hdu2444
  8. Android MVPR 架构模式
  9. 十全大补DBA学习资源
  10. perl 使用use utf8
  11. Mybatis整合Spring实现事务管理的源码分析
  12. Matplotlib(used in paper)
  13. 设计模式C++学习笔记之二(Proxy代理模式)
  14. Kivy crash 中文教程 实例入门 1. 第1个应用 Kivy App (Making a simple App)
  15. Intent 传递数据
  16. idea模板注释
  17. 16 级高代 II 思考题十的多种证明
  18. ubuntu set/unset proxy
  19. 微信小程序——自定义图标组件
  20. Disconf (version : 2.6.21)

热门文章

  1. 前沿科技-混合现实(MR)远程协作辅助工具:微缩虚拟形象Mini-Me
  2. Python爬虫:获取JS动态内容
  3. Docker service update更新不成功的问题
  4. C-01 手写数字识别
  5. Airport Express UVA - 11374
  6. PHP 实现get 和 Post 请求
  7. Angry Words 愤怒的话
  8. Vue-CLI 项目在pycharm中配置
  9. Redis开发与运维:数据迁移(下)
  10. 原生无缝Banner轮播图