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里面的内容即可
推荐使用友言、多说、畅言(需备案后使用)等社会化评论插件
资讯
最新资讯