最近开发遇到了一个比较有意思的弹窗,先上效果图。

一看效果图,可能很多人想到了Toast把,因为系统的Toast可以实现自定义view,但是却不能和用户产生交互,后面想到了用SnackBar,但是效果却不是很理想。最终还是选择自定义一个dialog去实现。

下面说一下实现的思路。

一:设置样式

<!--带按钮的toast样式-->
<style name="toast_setting_dialog" parent="android:style/Theme.Dialog">
<!--背景颜色及和透明程度-->
<item name="android:windowBackground">@android:color/transparent</item>
<!--是否去除标题 -->
<item name="android:windowNoTitle">true</item>
<!--是否去除边框-->
<item name="android:windowFrame">@null</item>
<!--是否浮现在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--是否背景半透明-->
<item name="android:windowIsTranslucent">false</item>
<!--是否模糊-->
<item name="android:backgroundDimEnabled">false</item>
</style>

二:设置布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="50dp"android:layout_marginBottom="70dp"android:alpha="0.8"android:background="@drawable/shape_toast_setting"android:paddingLeft="16dp"android:paddingRight="16dp"><TextViewandroid:id="@+id/tv_tip"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_centerVertical="true"android:text="无网络连接,请关闭飞行模式"android:textColor="@color/color_white"android:textSize="14sp" /><TextViewandroid:id="@+id/tv_action"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:text="设置"android:textColor="@color/colorPrimary"android:textSize="14sp" /></RelativeLayout>

三:代码使用,继承dialog使用

public class ToastSettingDialog extends Dialog {private TextView mTvTip;
private TextView mTvAction;
private Context mContext;public ToastSettingDialog(@NonNull Context context) {
super(context, R.style.toast_setting_dialog);
mContext = context;
}@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_toast_setting);
getWindow().setGravity(Gravity.BOTTOM);
initView();}private void initView() {
mTvTip = findViewById(R.id.tv_tip);
mTvAction = findViewById(R.id.tv_action);
mTvAction.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {ToastUtil.customShow(mContext, "点击了设置");}});}
}

四:在用到的地方实例化

ToastSettingDialog dialog=new ToastSettingDialog(Context);
//显示
dialog.show();
//隐藏
dialog.dissmiss();

实现背景透明,不模糊,Toast类型的Dialog相关推荐

  1. android自定义透明圆形,Android progressdialog自定义背景透明的圆形进度条类似于Dialog...

    很高兴能为大家分享一个背景是透明的圆形进度,先开效果图 效果图如下: 效果图 实现方法如下: 首先准备自己要定义成哪样子的效果的图片. 圆形进度条 1.创建Dialog的代码,你可以自己封装成一个方法 ...

  2. 设置背景透明时里面内容内容模糊(已解决)

    我们通常会遇到这种问题,特别是对于我这种前端小白,在导航栏鼠标放上去的时候,设置背景透明,结果里面的文字也变暗了,这是因为子元素的文字继承了父元素的属性了,那怎么办,用伪类设同级元素就好. 先贴代码, ...

  3. 关于png、背景透明疑难杂症综合帖

    前言 在web重构中,为了追求视觉效果,会经常使用标签背景透明.透明的png图片等,可惜ie6未死,所以经常会有这样那样的问题出现,下面我总结一下ie6下各种怪症和解决方法. 标签背景透明 常规方法 ...

  4. Android 自定义Dialog背景透明及显示位置设置

    先贴一下显示效果图,仅作参考: 代码如下: 1.自定义Dialog public class SelectDialog extends AlertDialog{public SelectDialog( ...

  5. WPF实现背景透明磨砂,并通过HandyControl组件实现弹出等待框

    WPF实现背景透明磨砂,并通过HandyControl组件实现弹出等待框 原文:WPF实现背景透明磨砂,并通过HandyControl组件实现弹出等待框 前言:上一个版本的Winform需要改成WPF ...

  6. css如何让背景透明,文字不透明

    今天写个效果,想让背景透明,直接设置 opacity:0.4; 导致文字也模糊了,该属性因该是应用在整个盒子上的. 只需给背景单独添加透明度即可 background:rgba(204,204,204 ...

  7. Zxing系列之设置二维码图片背景透明教程

    继之前的博客:PDF文件添加二维码水印教程.图片添加二维码水印教程之后,对之前的添加二维码水印功能进行完善,之前的程序生成的二维码图片背景不是透明的,所以不是很美观,所以本博客对程序进行完善,对二维码 ...

  8. vim配置(无插件,含状态栏,背景透明等)

    我的简书:https://www.jianshu.com/p/9773e9ca8411 文章目录 状态栏 背景透明 创建新文件自动加上文件头 状态栏 我不是很喜欢用插件,因为我觉得插件会影响我编辑器的 ...

  9. html字不透明度,css 背景透明文字(内容)不透明三种实现方法

    好久没写博客了.以前还想着最少一个月抽空写几篇.结果没做到O(∩_∩)O~~.好吧.现在努力,继续坚持. 看着以前写的东西,感觉自己在逐渐成长. 先上图: 本文主要记录如上图一样的.文字或内容不透明, ...

最新文章

  1. Eclipse创建一个普通maven项目详细步骤
  2. 打jar包和执行jar包
  3. PostgreSQL 13隐藏杀手锏特性
  4. 【es】ElasticSearch 插件开发
  5. 网页三剑客8免费下载加序列号
  6. 深度学习系列18:开源人脸识别库
  7. 多元函数的极值及其求法
  8. 第2篇:Python 基础语法
  9. ”凌寒独自开“绽放不一样的自己
  10. android后台流量限制,手机流量控制!安卓手机控制流量设置小技巧
  11. H.264 入门篇 - 00 (简介)
  12. 台式计算机摄像头怎么打开,电脑外接摄像头怎么打开怎么用
  13. 学习c语言必备的书籍推荐
  14. harbor登录报错doesn‘t contain any IP SANs问题
  15. 大学生访谈计算机教师,职业生涯人物访谈报告,教师(共10篇)
  16. TFT-LCD移植记录
  17. SAP 如何把科目快速扩充到所有公司
  18. 【宝塔面板建站】10分钟windows宝塔面板手动通用部署站点shopxo在线商城,无需服务器和域名本地运行(保姆级图文)
  19. IP 地址 与 DNS
  20. 音视频学习笔记----3,音视频编码基础学习之-YUV与RGB

热门文章

  1. 华三云服务器linux,华三云:做一朵场景化和个性化的云
  2. 论文阅读《Paired Overbounding for Nonideal LAAS and WAAS Error Distributions》
  3. 英伟达业绩预警,股价一日内暴跌超14%
  4. 某vmp壳原理分析笔记----ELF文件的加载,链接,IDAPYTHON
  5. 移动VMware虚拟机
  6. 2021第六届数维杯大学生数学建模竞赛赛题_C 运动会优化比赛模式探索
  7. 火柴游戏 这是一个纵横火柴棒游戏。如图[1.jpg],在3x4的格子中,游戏的双方轮流放置火柴棒。
  8. 关于Shiro使用密码加密加盐之后序列化失败的问题(十四)
  9. 用计算机配置打印机IP,网络打印机怎么设置ip(手把手教你设置打印机IP地址)...
  10. 信息工程学院的毕业晚会