我想要一个多色的祝酒词。像这样:
我查看了有关更改xml中布局的不同教程以创建自定义Toast,但没有一个解释添加这样的不同颜色。
我该怎么做?
================================
ANSWER
================================
使用你所有的帮助,我设计了一个简单的方法(),使彩色烤面包更容易调用。
RES /布局/ toast_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:paddingBottom="6dp"
android:paddingTop="6dp"
android:background="#DAAA"
>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
的src / PROJECTNAME / FILENAME.java
// Color Toast(String1,String2,Color)
// Toastbackground = White
// String1 = Dark Gray
// String2 - **CASE SENSITIVE**
// = "same" = Dark Gray, or
// = "purple" = Purple, or
// = "orange" = Orange
public void CToast(String t1, String t2, String c) {
if (c == "same") {
c = "444444";
} else if (c == "purple") {
c = "6600FF";
} else if (c == "orange") {
c = "ffcc00";
}
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_layout,
(ViewGroup) findViewById(R.id.toast_layout_root));
TextView textCToast = (TextView) layout.findViewById(R.id.text);
String text2 = "<font color=#444444>" + t1 + "</font> <font color=#" + c + ">" + t2 + "</font";
textCToast.setText(Html.fromHtml(text2));
Toast toast = new Toast(this);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setView(layout);
toast.show();
}
希望这有帮助!谢谢大家
答案 0 :(得分:6)
在yo0ur自定义布局中放置一个textView。那里
String text = "This is <font color='red'>red</font>. This is <font color='blue'>blue</font>.";
textView.setText(Html.fromHtml(text), TextView.BufferType.SPANNABLE);
N.B ..取自here
的例子答案 1 :(得分:3)
尝试这样做我希望这是你真正想要的
richTextView = (TextView)findViewById(R.id.rich_text);
// this is the text we'll be operating on
SpannableString text = new SpannableString("hello how are you");
// make "hello" to (characters 0 to 5) red color
text.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0);
richTextView.setText(text, BufferType.SPANNABLE);
如果你想让它显示为toast尝试这个而不是setText像这样使用它
Toast.makeText(context, text, Toast.LENGTH_LONG).show();
答案 2 :(得分:2)
我认为你应该用SpannableText
祝酒 - 使用它可以让你应用颜色,样式和插入表情符号等字符串。
所以,这是我第一次尝试以某种方式解决问题。
我确信这适用于绘制文本和多色通知。 或者您可能只需要应用spannable过滤器。见here