Kindle Fire上Toast的默认颜色是白色背景上的黑色文字。我按照this answer中的说明尝试将文本颜色设置为白色,将背景颜色设置为黑色,但在这些更改后,背景后面仍然显示白色,因此它看起来像黑色的白色文本在白色背景的背景。我需要设置一些其他字段才能使整个背景变黑吗?这是我的代码:
Context context = ctx.getApplicationContext();
CharSequence text = "Toasty text...";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
TextView v = (TextView) toast.getView().findViewById(android.R.id.message);
v.setTextColor(Color.WHITE);
v.setBackgroundColor(Color.BLACK);
toast.show();
编辑:我最终结合使用CommonsWare的答案和this link来创建默认的吐司并设置颜色。
答案 0 :(得分:3)
您可以尝试使用常规构造函数,然后使用makeText()
和setView()
的自定义布局,而不是使用静态Toast
方法。
答案 1 :(得分:1)
CommonsWare适合对吐司造型的最终控制。但是,如果你想继续前进,请尝试:
toast.getView().setBackgroundDrawable(R.drawable.toast);
你可以看到TextView在一个LinearLayout里面,它上面有一个可绘制的背景。您需要更改LinearLayout的背景,而不是包含在其中的TextView。
对于可绘制资源(drawable / toast.xml),如下所示:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:startColor="#000000" android:centerColor="#202020" android:endColor="#000000" android:angle="90" />
<stroke android:width="1dp" android:color="#808080" />
<corners android:radius="8dp" />
</shape>
但是你最好每个CommonsWare做一个自定义布局...