'来自维基百科的this链接我得到了红色的心脏代码,想要在我的TextView中显示生成自定义表情符号,但为什么它总是显示黑色的红色U + 2665的颜色在维基百科中清楚地标明了红色。下面是我的代码
TextView tv=(TextView)findViewById(R.id.testText);
// tv.setText(Html.fromHtml("\u2665"));
tv.setText(Html.fromHtml("<font color='red'>"+"\u2665"+"</font>"));
没有变成红色它仍然是黑色的,如果我放了任何其他文字它会显示红色。
答案 0 :(得分:2)
<强>说明:强> TextView字体将其渲染为表情符号,这意味着它基本上使用预定义的图像,因此字体颜色会被忽略。有一个可以用作后缀的unicode字符,告诉字体使用文本变体(VARIATION SELECTOR 15,&#34; \ uFE0E&#34;,使用如下:&#34; \ u2665 \ uFE0E&# 34;),但显然Android确实忽略了这些,至少在我的手机上(三星SM-G800F与5.1.1)
股票浏览器和Chrome也无法识别变体选择器,而Firefox for Android可以在我的手机上运行。
显然,这可能与手机不同,您可以在related question on Stackexchange UX
中看到<强>解决方案:强> 是什么解决了我的问题,是手动设置另一个ttf字体到TextView,它支持这些字符但不支持表情符号,即GNU FreeFont Project中的FreeSans。
下载字体并将其放在src / assets / fonts中。 然后设置TextView的字体:
Typeface type = Typeface.createFromAsset(getAssets(),"fonts/FreeSans.ttf");
mTextView.setTypeface(type);
您应该将Typeface加载到静态常量中,以避免一遍又一遍地重新创建它。
答案 1 :(得分:1)
要使其成为红色,您必须将其设置为textColor RED。就像这样 - &gt;
TextView tv=(TextView)findViewById(R.id.testText);
tv.setText(Html.fromHtml("\u2665"));
tv.setTextColor(Color.RED); // Set color here
答案 2 :(得分:1)
将您的unicode
转换为Hexadecimal
&amp;像这样使用它。 tv.setText(Html.fromHtml("♥"));
查看我的answer了解详情。
答案 3 :(得分:0)
此外,您在文本视图中的xml文件中设置了颜色,如..
WHERE cod_produto LIKE '%' + @it_codigo + '%'
并在java文件中设置文本自定义表情符号,其工作正常。
答案 4 :(得分:0)
将代码\u2764
用于红心。
对我有用。