我想更改自定义toast消息的背景,但不想为每种颜色创建新的xml文件。更具体地说;
这是我的custom_toast_border.xml文件,在drawable目录下。
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content"
android:layout_width="match_parent">
<stroke android:width="1dp" android:color="@color/toastGreen" />
<corners android:radius="0dp" />
<gradient android:startColor="@color/toastGreen"
android:endColor="@color/toastGreen"
android:angle="-90"/>
我的custom_toast.xml布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_toast_container"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@drawable/custom_toast_border"
android:layout_gravity="bottom|center_horizontal"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp">
<TextView
android:id="@+id/tv_toast_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/futura_book"
android:padding="3dp"
android:text="Toast Message"
android:textAlignment="center"
android:textColor="@color/black"
android:textSize="17sp" />
</LinearLayout>
Java代码:
..... inflater = getLayoutInflater();
layout = inflater.inflate(R.layout.custom_toast,null);
toast_message = layout.findViewById(R.id.tv_toast_message);
Toast toast = new Toast(getActivity().getApplicationContext());
//View view = toast.getView(); //It is failed. Null object referance
//view.getBackground().setColorFilter(getResources().getColor(R.color.toastRed), PorterDuff.Mode.SRC_IN);
toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
我想为吐司背景三种不同的颜色。我是否必须为每种颜色创建单独的文件?(像custom_toast_border_red,..._green,.._yellow)。我无法在 Java 代码中更改背景颜色吗?请注意,我不想改变文字颜色,我想改变背景颜色。前面问题的大多数答案都解释了如何更改文本颜色。
对于定制吐司,您可以尝试以下代码
Toast ToastMessage = Toast.makeText(getApplicationContext(),"Change Toast Background color",Toast.LENGTH_SHORT);
View toastView = ToastMessage.getView();
toastView.setBackgroundResource(toast_background_color);
ToastMessage.show();
GradientDrawable containerDrawable = (GradientDrawable) layout.findViewById(R.id.custom_toast_container).getBackground();
containerDrawable.setColor(Color.GREEN); // CHANGE BG COLOR
containerDrawable.setStroke(1,Color.GREEN); // CHANGE THE STROKE COLOR
我已经挣扎了几天了。我对Spring Boot还是个新手,喜欢不使用XML配置的想法。 我创建了一个RESTfull应用程序(使用JSON)。我正在按照本教程正确配置身份验证。 可以使用 元素上的entry-point-ref属性设置AuthenticationEntryPoint。 没有提到任何关于如何使用Java配置来实现它的内容。 那么如何在不使用XML的情况下“注册”自己的以防止在使用Fo
Angular Material提供了各种特殊方法来向用户显示不显眼的警报。 它还为他们提供了一个术语吐司。 $ mdToast服务用于显示祝酒词。 例子 (Example) 以下示例显示了toasts的用法。 am_toasts.htm <html lang = "en"> <head> <link rel = "stylesheet" href = "htt
有没有一种方法可以修改提交,而不弹出(或您的)来修改提交消息,而只是简单地重用前面的消息?
在我的应用程序中,我为我的活动构造了一个日历小部件,当我滚动到上一个月或下一个月时,我让它祝酒并显示它。 问题是,祝酒词需要时间来显示,当我滚动得足够快时,比如我滚动到“2012/05”和“2012/06”,滚动到“2012/07”没有停顿,我就得等着“2012/05”、“2012/06”、“2012/07”的祝酒词一一慢慢显示。
我试图将文本字段“Colorbox0”的背景色更改为“Value0”,但它去掉了边框。 以下是我代码的简化版本: 非常感谢您的帮助 谢谢
所以我有一个扩展JPanel的“GameCourt”类。这个类覆盖paintComponent代码,以便绘制一些组件(迷宫、字符和一些硬币)。这个JPanel是扩展JLayeredPane的类的一部分,它有两层,一层用于绘制背景(使用扩展JPanel的BackgroundPanel类),另一层用于绘制我想要的所有元素(一个重置按钮,一个标签..) 所以我想要的是JLayeredPane中背景上方的