Существует хороший пост, сделанный популярным разработчиком Google Romain Guy, который показывает, как использовать закругленные углы, которые можно легко вырезать (называемый "StreamDrawable" в его код).
Сам образец очень хорошо работает на моей Galaxy S3 в портретном режиме, но у меня есть несколько проблем с ним:
-
если экран небольшой (например, на экранах qvga), показанные изображения обрезаются.
-
Если у меня есть бит-карта ввода, которая слишком мала, как я хочу ее показать, на выходном изображении будут размыты края. Даже на Galaxy S3, когда вы запускаете образец кода, и он на пейзаже, он выглядит ужасно:
-
Я все еще не уверен в этом (так как я использую обходное решение для масштабирования изображения для использования примерного кода), но он считает, что даже это решение немного медленнее при использовании в listView. Может быть, для этого есть решение renderscript?
Не имеет значения, использую ли setImageDrawable или setBackgroundDrawable. Это должно быть что-то само по себе.
Я пытался играть с переменными и bitmapShader, но ничего не получилось. К сожалению, TileMode не имеет значения только для растягивания изображения, только с его черепицей.
В качестве обходного пути я могу создать новое масштабированное растровое изображение, но это просто обходной путь. Конечно, есть лучший способ, который также не будет использовать больше памяти, чем он должен.
Как исправить эти проблемы и использовать этот отличный код?