仿腾讯新闻样式的Toast

厌倦了网易新闻无处不在的喷子,尝试了一下腾讯新闻,果然顿时清净了很多,当然这不是重点。个人感觉腾讯新闻客户端的Toast比较不错,相对于系统默认的Toast,更加能起到提醒的作用。于是反编译了一下,简单分享一下,其实很简单。

先看效果

背景为深灰色,支持设置图片和文字。

布局文件

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:id="@+id/view_tips_layout" android:background="@drawable/tips_bg" android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"> <View android:layout_width="160.0dip" android:layout_height="160.0dip" android:layout_centerInParent="true" /> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true"> <ImageView android:gravity="center" android:layout_gravity="center" android:id="@+id/tips_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="10.0dip" android:src="@drawable/tips_error" android:contentDescription="@null" /> <TextView android:textSize="17.0sp" android:textColor="#ffffffff" android:gravity="center" android:layout_gravity="center" android:id="@+id/tips_msg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:lineSpacingExtra="3.0dip" /> </LinearLayout> </RelativeLayout>

程序代码

1 2 3 4 5 6 7

Toast toast = new Toast(getApplicationContext()); View toastView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.view_tips, null); ((ImageView)toastView.findViewById(R.id.tips_icon)).setImageResource(R.drawable.ic_launcher); ((TextView)toastView.findViewById(R.id.tips_msg)).setText("Error Occurs"); toast.setView(toastView); toast.setGravity(Gravity.NO_GRAVITY, 0, 0); toast.show();

Toast默认的位置为底部水平居中。我们可以通过设置setGravity(int, int, int)来进行设置位置。该方法接受三个参数,一个Gravity常量,一个x(水平)方向上的偏移量,一个y(竖直)方向上的偏移量。

如果我们想让位置向右我们需要增加x方向上的偏移量,如果想让位置向下,增大y方向上的偏移量。

多说

我们可以根据自己的需求去设置图片,文字,背景色等样式来定制想要的Toast。

注意,涉及到长度宽度字体大小相关的建议放到dimens文件,便于我们进行设备适配。

示例下载

百度网盘

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏李蔚蓬的专栏

Material Design 实战 之第四弹 —— 卡片布局

首先这里准备用CardView来填充主题内容, CardView是用于实现卡片式布局效果的重要控件,由appcompat-v7库提供。 实际上,CardVi...

1381
来自专栏非著名程序员

Android中如何动态的实现设置全屏和退出全屏

在我们的开发过程中,实现Activity全屏的效果经常遇见,当然我相信大家都肯定使用过,估计也会用,但是推出全屏的方法估计大家应该大多数人没有用过。在这里我就给...

2555
来自专栏移动开发之家

Android 列表视频的全屏、自动小窗口优化实践

上例牌 github>>>>>>>> https://github.com/CarGuo 对,就是这个郭老司机。

2895
来自专栏何俊林

DragVideo,一种在播放视频时,可以任意拖拽的方案

前言:项目已开源到我的github,点击【阅读原文】可以对应github地址。 DragVideo A Method to Drag the Video Wh...

3647
来自专栏非著名程序员

教你步步为营掌握自定义 View

国内自定义View的文章汗牛充栋,但是,即使你全部看完它们也未必能掌握这一知识点(实际上,我就几乎看完了所有的国内文章)。为什么?一言以蔽之,你是得其术不明其道...

2046
来自专栏林冠宏的技术文章

实现一个网易云音乐的 BottomSheetDialog

作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:htt...

4167
来自专栏移动开发

android平移动画闪烁问题

当我们应用android平移动画时,一般会给动画一个监听,当动画结束时,会将view的位置重新绘制到我们想要的位置,因为平移动画并没与真的改变控件的实际位置. ...

2233
来自专栏何俊林

仿网易/QQ空间视频列表滚动连播炫酷效果

VideoFeed实现的功能 滚动时不播放,但是要亮起,当前屏幕内,item view显示百分比最大的一个。 停止滚动且手指抬起时自动播放。 播放完当前的视频...

25010
来自专栏非著名程序员

Android Material Design系列之Toolbar

今天我们主要讲Toolbar的使用,我们都知道Toolbar是在Android 5.0以后推出来的,之前都是ActionBar这个控件。我相信虽然谷歌在3.0以...

2238
来自专栏Android干货

Android项目实战(十):自定义倒计时的TextView

3406

扫码关注云+社区

领取腾讯云代金券