我正在使用响应式设计开发一个网站。我正在尝试显示unicode字符&#9776(☰符号),并且它没有显示在Android上。有没有办法让这个角色正确显示,还是我需要用它制作一个图像?
由于
答案 0 :(得分:17)
☰
表示的字符未出现在Android字体中,其font coverage在其他环境中也相对有限。
基本选项是通过@font-face
使用可下载字体(网络字体)并使用适当缩放到文字大小的图像。
如果这是你需要的唯一“特殊”角色,那么图像方法可能是合适的:它很容易,而且角色的形状非常简单,可以很好地扩展。
使用可下载的字体可能会产生更好的效果,尤其是如果字符在内部文本中使用。但是你可能需要像Quivira或Symbola这样的字体,这些字体是大型(> 1 Mbyte)免费字体,如果只是一个字符,这似乎意味着不成比例的开销。
有关详细信息,请参阅我的Guide to using special characters in HTML。
答案 1 :(得分:5)
为什么没有人建议CSS3方法超出我的范围。几乎所有设备都支持此功能。
这里有一个小小的动作,http://jsfiddle.net/328k7/。
使用CSS3创建三元组,如下所示:
div {
content: "";
position: absolute;
left: 0;
display: block;
width: 16px;
top: 0;
height: 0;
-webkit-box-shadow: 1px 10px 1px 1px #69737d,1px 16px 1px 1px #69737d,1px 22px 1px 1px #69737d;
box-shadow: 0 10px 0 1px #69737d,0 16px 0 1px #69737d,0 22px 0 1px #69737d;
}
答案 2 :(得分:2)
它没有为当前字体定义。如果您只关心自己的设备,可以将字体更改为适合的字体,但确保在所有设备上显示它的唯一方法是使用图像。
答案 3 :(得分:2)
查看Android上支持的字符:Android character sets。似乎没有得到支持。
您可以使用<img src="http://www.fileformat.info/info/unicode/char/2630/trigram_for_heaven.png">
标记替换它。
答案 4 :(得分:-1)
我将此代码用于hamburger-menu-icon:
public class MenuButton extends Button
{
public MenuButton(android.content.Context context){
super(context);
}
public MenuButton(android.content.Context context, android.util.AttributeSet attrs) {
super(context,attrs);
}
public MenuButton(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr) {
super(context,attrs,defStyleAttr);
}
public MenuButton(android.content.Context context, android.util.AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context,attrs,defStyleAttr,defStyleRes);
}
Paint paint = new Paint();
@Override
protected void onDraw(Canvas canvas){
//super.onDraw(canvas);
MarginLayoutParams lp=(MarginLayoutParams)getLayoutParams();
float p=lp.rightMargin;
float w=getWidth()-lp.leftMargin-lp.rightMargin;
float h=getHeight()-lp.topMargin-lp.bottomMargin;
paint.setColor(Color.WHITE);
paint.setStrokeWidth(0.0f);
float ww=(h)/5.0f;
canvas.drawRect(0+p, ww*0+p, p+w, ww*1+p, paint);
canvas.drawRect(0+p, ww*2+p, p+w, ww*3+p, paint);
canvas.drawRect(0+p, ww*4+p, p+w, ww*5+p, paint);
}
}