联系我们 - 广告服务
您的当前位置:官网首页 > 资讯 > 时局 >

Android 彩色Toast的实现代码

来源: 编辑: 时间:2019-08-08
导读: android默认的toast太丑了,我们来封装一个花里胡哨的toast吧,就叫coloredtoast。github:https://github.com/i......

android默认的toast太丑了,我们来封装一个花里胡哨的toast吧,就叫coloredtoast。

github:https://github.com/imcloudfloating/designapp

效果:

toast有一个setview方法,通过它我们可以设置自定义的布局,这里我只是加入了改变背景色,如果你有其它需求,比如加上图标也是可以的。

布局文件:一个framelayout和显示消息的textview

 xml version="." encoding="utf-" 
 framelayout 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" 
 textview
 android:id="@+id/toast_message"
 android:layout_width="wrap_content"
 android:layout_height="dp"
 android:paddingstart="dp"
 android:paddingend="dp"
 android:gravity="center"
 android:textsize="sp"
 tools:text="this is a toast message" / 
 /framelayout 

2.java代码:

用layoutinflater来加载布局,然后用setview将布局设置为toast的根view,通过自定义方法来设置toast的消息和背景色,这里背景色是给textview设置的,假如你想加上图标和其它元素,通过findviewbyid来设置即可。

这里我用的是gradientdrawable来作为toast的背景,setcolor方法背景色,setcornerradius设置圆角半径,最后将他作为textview的背景就可以了。如果你不想用它,也可以直接使用xml文件来作为背景,不过这样就不方便灵活设置颜色了。

 package com.cloud.customviews;
 import android.content.context;
 import android.graphics.drawable.gradientdrawable;
 import android.support.annotation.colorres;
 import android.support.annotation.intdef;
 import android.support.annotation.nonnull;
 import android.support.annotation.stringres;
 import android.view.layoutinflater;
 import android.view.view;
 import android.widget.textview;
 import android.widget.toast;
 public class coloredtoast extends toast {
 @intdef {
 super;
 public static class maker {
 private context mcontext;
 private coloredtoast mtoast;
 private view mtoastview;
 private textview mtextmessage;
 public maker {
 mcontext = context;
 mtoast = new coloredtoast;
 mtoastview = layoutinflater.from.inflate;
 mtextmessage = mtoastview.findviewbyid;
 * set text color and background color for toast by resource id
 public maker setcolor {
 gradientdrawable drawable = new gradientdrawable;
 drawable.setcolor);
 drawable.setcornerradius.height / );
 mtoastview.setbackground;
 mtextmessage.settextcolor);
 return this;
 * set position
 * @see android.view.gravity
 public maker setgravity {
 mtoast.setgravity;
 return this;
 public coloredtoast maketoast {
 mtextmessage.settext;
 mtoast.setview;
 mtoast.setduration;
 return mtoast;
 public coloredtoast maketoast {
 mtextmessage.settext;
 mtoast.setview;
 mtoast.setduration;
 return mtoast;
 }
责任编辑:

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

上一篇:Android实现简单的popupwindow提示框
下一篇:没有了

网友评论:

在“\templets\demo\comments.htm”原来的内容全部删除,插入第三方评论代码,如果不需要评论功能,删除comments.html里面的内容即可
推荐使用友言、多说、畅言(需备案后使用)等社会化评论插件

Copyright © 2018 凯发网址娱乐凯发网址娱乐-凯发网娱乐下载-凯发网娱乐官方网站 All Rights Reserved Power by DedeCms
本站所有资讯来源于网络 如有侵权请联系QQ:9490489
Top