Как прочитать результат побитового оператора ИЛИ (|)? - PullRequest
0 голосов
/ 23 июня 2011

Я хотел бы получить подтверждение для побитовых операторов внутри файлов Android XML. Например, эта строка

android:layout_gravity="center_horizontal|bottom"

Как мне это прочитать? Являются ли правила, унаследованные от Java или Android, собственной интерпретацией побитовых операторов?

Поддерживаются ли все побитовые операторы? Если да, не могли бы вы показать мне пример других операторов (ссылка тоже в порядке)?

Спасибо

Ответы [ 2 ]

2 голосов
/ 23 июня 2011
2|1 = 3
2&1 = 0
3&1 = 1

central_horizontally, bottom - целые числа, поэтому вы можете использовать эту конструкцию

    int center_horizontal = 0x05; //just for clarification
    int other_orientation = 0x10;
    int orietntation = center_horizontal | other_orientation;

//this condition returns true
    if((orientation&center_horizontal)==center_horizontal){
        //something to do
        }
1 голос
/ 23 июня 2011

Значение android_layout_gravity анализируется кодом Android. Как задокументировано здесь , единственным распознаваемым оператором здесь является |. Я не верю, что интерпретация | как побитового оператора ИЛИ является частью спецификации. (Например, center_horizontal - это 0x05, а right - это 0x01; их побитовое ИЛИ будет 0x05.)

...