Ruby: создайте Строку из байтов

ПРОСТОЙ ПОДХОД:

Создать XML-файл rounded_fg.xml в res / drawable / папка вашего приложения. Содержимое rounded_fg.xml выглядит следующим образом:



    

Вы можете сопоставить endColor с фоновым макетом контейнера ImageView & amp; GradientRadius может иметь любое значение в соответствии с вашими требованиями (< = 36dp).

Теперь используйте это рисование в качестве переднего плана для просмотра изображений следующим образом:

 

Прекрасно работает с квадратными изображениями и / или ImageView .

Квадратное изображение / вид изображения:

Square Image/ImageView

Прямоугольное изображение / вид изображения:

Rectangular Image/ImageView

Передний план применен над кнопкой:

Foreground applied over a button

39
задан Vincent Robert 6 June 2009 в 22:45
поделиться

3 ответа

Существует гораздо более простой подход, чем любой из вышеперечисленных: Array # pack :

>> [65,66,67,68,69].pack('c*')
=>  "ABCDE"

Я считаю, что pack реализован на языке c в matz ruby, поэтому он также будет значительно быстрее работать с очень большими массивами.

Кроме того, pack может правильно обрабатывать UTF-8 с использованием шаблона 'U *'.

59
ответ дан 27 November 2019 в 02:22
поделиться

не могу вспомнить, есть ли хоть одна функция, которая это делает:

>> a = [65,66,67]
=> [65, 66, 67]
>> a.map {|x| x.chr}.join
=> "ABC"
7
ответ дан 27 November 2019 в 02:22
поделиться

Если байты - это массив Fixnum, вы можете попробовать следующее:

bytes.map {|num| num.chr}.join

или это:

s = ''
bytes.each {|i| s << i}
3
ответ дан 27 November 2019 в 02:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: