В Android есть чистый способ отображения только определенной части растрового изображения в ImageView (например, одного спрайта листа спрайтов) без необходимости:Отображение части спрайта в Android ImageView
- вручную разбить растровые детские в маленький формат PNG (=> больше встроенный в вводимом коэффициенте приложения, утомительная ручная работа, возможно, приведет к ошибкам, или потерять spritesheet).
- Есть небольшой PNGs, используемый в ImageViews, с спрайт лист генерируется (=> осложнены)
- Создать «грязные» подклассы ImageView, Drawable и т.д. (=> больше мы используем Android API «ASIS» лучше)
- Программные создать суб-битовые карты большого растрового изображения (=> Мы должны сделать всю работу программно)
например, я попытался создать в ImageView ширина/высоту 40dp, и установив его вытяжку как ClipDrawable, отображающий только часть растрового изображения, которое я хотел, но это не помогло:
Обрезанная часть не заполняла родителя при использовании Gravity.CENTER при создании ClipDrawable.
При использовании Gravity.FILL отображается вся «большая» PNG.
Кроме того, это решение устроиств возможно с помощью простого спрайтов листа (например, 2 * 2 спрайтов), но я не считаю, что это возможно при использовании что-то вроде спрайтов листа 4 * 4. Я думаю, что ClipDrawable не предназначен для такого использования.
Не существует ли чего-то «чистого и легкого», как в OpenGL, где вы можете установить идентификатор текстуры и задать координаты текстуры для отображения только части текстуры? Учитывая мои исследования, я считаю, что лучшим решением является ручное разделение большого растрового изображения с помощью Bitmap.createBitmap, когда я предпочитаю просить, прежде чем начинать что-то подобное.
PS: Я рассматриваю использование SpriteSheets из-за OpenGl, хотя мои «меню» разрабатываются с использованием API Android, следовательно, используя ImageView.
Спасибо. Я знал о холсте, но никогда не использовал их широко. Это может быть действительно хорошим решением (мой «любимый» - это программное разделение растровых изображений, но я боялся, что это, возможно, в конечном итоге приведет к большому количеству памяти). Я посмотрю на это, и поскольку Views использует Canvas, это можно было бы обработать «автоматически» (и используя макеты), создав пользовательский вид чертежа только частью растрового изображения. Еще раз спасибо. – Consign