如何在Android中实现彩色面包

  介绍

本篇文章为大家展示了如何在Android中实现彩色烤面包,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

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

布局文件:一个FrameLayout和显示消息的TextView

& lt; ? xml  version=案删?编码=皍tf产生绯闻;?比;   ,& lt; FrameLayout  xmlns: android=癶ttp://schemas.android.com/apk/res/android"   ,,xmlns:工具=癶ttp://schemas.android.com/tools"   ,,android: layout_width=皐rap_content"   ,,android: layout_height=皐rap_content"比;   & lt; TextView。才能   ,,,,android: id=癅 + id/toast_message"   ,,,,android: layout_width=皐rap_content"   ,,,,android: layout_height=癲p"   ,,,,android: paddingStart=癲p"   ,,,,android: paddingEnd=癲p"   ,,,,android:重力=癱enter"   ,,,,android: textSize=皊p"   ,,,,工具:文本=叭?能够is  a  toast  message",/比;   ,& lt;/FrameLayout>

2。Java代码:

用LayoutInflater来加载布的局,然后用setView将布局设置为烤面包的根视图,通过自定义方法来设置吐司的消息和背景色,这里背景色是给TextView设置的,假如你想加上图标和其它元素,通过findViewById来设置即可。

这里我用的是GradientDrawable来作为烤面包的背景,改变颜色方法背景色,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 上下文),{   ,,,,超级(上下文);   ,,}   ,,public  static  class  Maker  {   ,,,,private  Context  mContext;   ,,,,private  ColoredToast  mToast;   ,,,,private  View  mToastView;   ,,,,private  TextView  mTextMessage;   ,,,,public 制造商(Context 上下文),{   ,,,,,,mContext =,上下文;   ,,,,,,mToast =, new  ColoredToast(上下文);   ,,,,,,mToastView =, LayoutInflater.from(上下文).inflate (R.layout.toast_colored, null);   ,,,,,,mTextMessage =, mToastView.findViewById (R.id.toast_message);   ,,,,}   ,,,,/* *   ,,,,*,Set  text  color 以及background  color  for  toast  by  resource  id   ,,,*/,,,,public  Maker 改变颜色(@ColorRes  int 输入textColor, @ColorRes  int 写成backgroundColor), {   ,,,,,,GradientDrawable  drawable =, new  GradientDrawable ();   ,,,,,,drawable.setColor (mContext.getColor(写成backgroundColor));   ,,,,,,drawable.setCornerRadius (mTextMessage.getLayoutParams () .height /,);   ,,,,,,mToastView.setBackground(可拉的);   ,,,,,,mTextMessage.setTextColor (mContext.getColor(输入textColor));   ,,,,,,return ;   ,,,,}   ,,,,/* *   ,,,,*,Set 位置   ,,,,*,@see  android.view.Gravity   ,,,*/,,,,public  Maker  setGravity (int 重力,int  xOffset,, int  yOffset), {   ,,,,,,mToast.setGravity (xOffset,重力,还以为;yOffset);   ,,,,,,return ;   ,,,,}   ,,,,public  ColoredToast  makeToast (@StringRes  int ,渣油,@Duration  int 持续时间),{   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在Android中实现彩色面包