介绍
本篇文章为大家展示了如何在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中实现彩色面包