android toast设置背景颜色,Android 彩色Toast的实现代码
Android默认的Toast太丑了,我们来封装一个花里胡哨的Toast吧,就叫ColoredToast。
效果:
Toast有一个setView方法,通过它我们可以设置自定义的布局,这里我只是加入了改变背景色,如果你有其它需求,比如加上图标也是可以的。
布局文件:一个FrameLayout和显示消息的TextView
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
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" />
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(value = {
LENGTH_SHORT,
LENGTH_LONG
})
@interface Duration {}
private ColoredToast(Context context) {
super(context);
}
public static class Maker {
private Context mContext;
private ColoredToast mToast;
private View mToastView;
private TextView mTextMessage;
public Maker(Context context) {
mContext = context;
mToast = new ColoredToast(context);
mToastView = LayoutInflater.from(context).inflate(R.layout.toast_colored, null);
mTextMessage = mToastView.findViewById(R.id.toast_message);
}
/**
* Set text color and background color for toast by resource id
*/
public Maker setColor(@ColorRes int textColor, @ColorRes int backgroundColor) {
GradientDrawable drawable = new GradientDrawable();
drawable.setColor(mContext.getColor(backgroundColor));
drawable.setCornerRadius(mTextMessage.getLayoutParams().height / );
mToastView.setBackground(drawable);
mTextMessage.setTextColor(mContext.getColor(textColor));
return this;
}
/**
* Set position
* @see android.view.Gravity
*/
public Maker setGravity(int gravity, int xOffset, int yOffset) {
mToast.setGravity(gravity, xOffset, yOffset);
return this;
}
public ColoredToast makeToast(@StringRes int resId, @Duration int duration) {
mTextMessage.setText(resId);
mToast.setView(mToastView);
mToast.setDuration(duration);
return mToast;
}
public ColoredToast makeToast(@NonNull String text, @Duration int duration) {
mTextMessage.setText(text);
mToast.setView(mToastView);
mToast.setDuration(duration);
return mToast;
}
}
}
android toast设置背景颜色,Android 彩色Toast的实现代码相关推荐
- android toast设置背景颜色,android-自定义Toast消息文本颜色
如何显示这样的定制Toast: 解决方法: 我们可以将SpannableString用作此消息的文本. 像这个块: public void showToast(){ SpannableString s ...
- android textview获取背景颜色,Android TextView背景颜色与背景图片设置
Android TextView 背景颜色与背景图片设置,android textview 控件,android textview 背景, android textview 图片,android te ...
- Android添加程序背景颜色,Android小程序实现切换背景颜色
本文实例为大家分享了Android实现切换背景颜色的具体代码,供大家参考,具体内容如下 (1)首先打开界面布局文件,添加两个Button xmlns:tools="http://schema ...
- android自定义主题背景颜色,Android 自定义SeekBar 实现分段显示不同背景颜色的示例代码...
在最近的开发工作中,要实现一个调色板的进度条,SeekBar要分成10段显示不同颜色,功夫不负有心人,终于实现了这个功能,下面分享给大家 示例图: 1.自定义SeekBar import androi ...
- android 自定义menu 背景颜色,Android中设置Menu菜单的文字颜色为白色
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 开发者交流裙: 188168040 Android中设置Menu菜单的文字颜色为白色,一般情况下,Android中Menu菜单的title文字颜色为黑色, ...
- android 画圆角背景颜色,android圆角矩形有背景颜色
android圆角矩形,渐变颜色,自定义 首先,在drawable目录下写一个xml,名字随便起(只要符合规范),代码如下: android:shape="rectangle" & ...
- android webview 设置文字颜色,android webView 修改页面字体颜色
webview加载一个界面后,在onPageFinished中加入修改页面字体颜色css,如下String nightCode = ""; try { InputStream is ...
- android textview获取背景颜色,android – 从textview获取背景颜色而不使用ColorDrawable(API 11)...
试试这个- public static int getBackgroundColor(TextView textView) { ColorDrawable drawable = (ColorDrawa ...
- android 设置activity背景图片,给Activity设置背景颜色
为了使得错误提示更加显眼,再用Toast+振动效果之外考虑变换整个activity的背景颜色. 尝试一: activity并没像winform一样直接给个属性来设置,就想获取整个activity的la ...
最新文章
- Python生物信息学③提取差异基因
- 创建Swap交换空间
- Extra data: line 1 column 342004 (char 342003)
- C语言再学习 -- Xargs用法详解
- php的浏览历史怎么做,php浏览历史记录的方法
- 2017年第八届蓝桥杯国赛B组试题A-36进制-进制转换
- 尽梨了(贪心+dp)
- Cassandra1.2文档学习(5)—— Snitch
- matlab数字图像处理函数,MATLAB数字图像处理学习(二)|常用函数
- 物联网面临发展的主要难题是什么,物联网技术主要分为哪几类?
- R语言实战-读书笔记整理
- 数据库SQL语句之外键
- Oracle脱库脚本
- CodeBlocks下载安装的坑,无法编译成功
- ubuntu英伟达显卡驱动
- Java Keytool工具简介
- 电商业务中的五大机器学习问题!
- wpf,silverlight,wp7,winform等学习资料整合(一)
- 【计算机毕业设计】018母婴商城系统
- 认识黑客常用的入侵方法