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);
    }
}