2016-11-09 1 views
3

Я просмотра видео https://youtu.be/wIy8g8yNhNkПонимание скрытых затрат прозрачности на Android

Мой первый вопрос.

Насколько я понимаю из видеоролика, когда мы нарисовываем непрозрачный View, мы просто помещаем данные, грубо говоря, растровое изображение на экран. Это называется рендеринг. Это правильно?

Мой второй вопрос.

Теперь давайте нарисуем TextView с непрозрачным фоном полупрозрачным текстом. Почему это должен быть двухэтапный процесс, описанный в видео: мы рисуем TexView непрозрачным, а затем применяем новое значение альфа, чтобы сделать текст полупрозрачным? Это просто способ Android был разработан? Почему мы не можем сделать полупрозрачный пиксель за один шаг?

Мой третий вопрос.

Here Ian Ne-Lewis рассказывает нам о двух аспектах: непрозрачный (сверху) и полупрозрачный (под непрозрачной частью). Он говорит, что две части не перекрываются. Но непрозрачная часть находится поверх полупрозрачной части. Так почему он говорит, что эти взгляды не перекрываются? Насколько я понимаю, «перекрывая» он означает наличие чего-то полупрозрачного поверх чего-то непрозрачного.

ответ

3

Отвечая на первый вопрос:

Rendering является процесс, запускаемый Android Framework, когда он рисует свой непрозрачный вид на экране.

Второй вопрос

Оказывать что TextView, Android будет первым сделать непрозрачный фон, а затем полупрозрачный текст. И, как вы видели на видео: при рендеринге альфа-слоев андроид должен перерисовать фоновые слои, чтобы увидеть, к какому цвету должна относиться альфа-смесь.

Именно так был разработан Android. Даже если фон и текст были непрозрачными, Android сначала нарисовал бы фон, а затем текст (но на этот раз ему не нужно проверять фон для смешивания).

Третьего вопрос

Я думаю, что вы не правильно поняли смысл перекрытия. Вот пример: enter image description here