Unicode-символ на Android не отображается
Я разрабатываю веб-сайт, используя отзывчивый дизайн. Я пытаюсь отобразить символ Unicode & # 9776 (символ ☰), и он не отображается на Android. Есть ли способ, чтобы этот символ отображался правильно, или мне нужно сделать изображение из него?
Спасибо
Ответы
Ответ 1
Символ, обозначенный символом ☰
, не отображается в шрифтах Android, а его покрытие шрифтов относительно ограничено и в других средах.
Основными параметрами являются загружаемый шрифт (веб-шрифт) через @font-face
и использование изображения, подходящего размера для текста.
Если это единственный "специальный" символ, который вам нужен, подход изображения может быть подходящим: это легко, и форма персонажа настолько проста, что можно ожидать, что он будет хорошо масштабироваться.
Использование загружаемого шрифта может привести к лучшим результатам, особенно если символ используется встроенным текстом. Но вам, вероятно, понадобится шрифт Quivira или Symbola, которые являются большими ( > 1 мегабайт) свободными шрифтами, и это, по-видимому, подразумевает непропорциональные накладные расходы, если это только для одного символа.
Подробнее см. в Руководство по использованию специальных символов в HTML.
Ответ 2
Почему никто не предлагает, чтобы метод 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;
}
Ответ 3
Не определено для текущего шрифта. Вы можете изменить шрифт на то, где он находится, если вы заботитесь только о своем собственном устройстве, но единственный способ убедиться, что его отображение на всех устройствах - использование изображения.
Ответ 4
Посмотрите на поддерживаемые символы на Android: набор символов Android. Кажется, он не поддерживается.
Вероятно, вы можете заменить его тегом <img src="http://www.fileformat.info/info/unicode/char/2630/trigram_for_heaven.png">
.
Ответ 5
Я использую этот код для гамбургер-меню-значка:
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);
}
}