Синтаксис растрового изображения Android - PullRequest
0 голосов
/ 15 октября 2010

Я хочу загрузить растровые изображения в ImageViews в Android, но я не хочу использовать синтаксис R.drawable, потому что у меня много изображений со стандартным соглашением об именах, поэтому намного проще получить изображение с некоторой логикой.Например, все мои изображения имеют имена:

img1.png img2.png img3.png

Так что, если пользователь выбирает значение, скажем, x, я показываю «img» + x +«.png» в ImageView.Похоже, что Bitmap.decodeFile - это то, что мне нужно, но мне нужно знать синтаксис того, как добраться до моей папки drawables, поскольку там находятся изображения.Или, может быть, есть лучший способ.

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

Ответы [ 3 ]

1 голос
/ 15 октября 2010

Одной из альтернатив является использование отражения для загрузки изображений из R. Вы можете искать статические переменные по имени строки.Имейте в виду, что отражение может быть медленным, хотя.Если вы собираетесь загружать одно и то же изображение несколько раз, возможно, вы захотите сохранить кэш имени -> R id.

Редактировать: Вы также можете получить к ним доступ по URI.См. в отношении ресурсов Android с использованием uris .

.
0 голосов
/ 17 октября 2010

Похоже, я нашел решение. Реальная проблема заключается в том, что я генерирую имена ресурсов во время выполнения, но я могу получить идентификатор ресурса следующим образом: getResources (). getIdentifier ("string1" + string2, "id", "com.company.package")

Затем я могу передать это значение в setImageResource или любой другой метод, который принимает идентификатор ресурса.

0 голосов
/ 16 октября 2010

Значение R.drawable само по себе является числом.Вам просто нужно использовать первый идентификатор изображения и добавить фиксированное значение, чтобы найти правильное изображение.Например:

R.drawable.image1 = 1234;R.drawable.image2 = 1235;и т.д.

Таким образом, чтобы получить изображение 2, я бы хотел R.drawable.image1 + 1.

Каждый раз, когда файл R.java восстанавливается, числа могут меняться, но последовательность будет одинаковой,Если вы не хотите зависеть от этого, то вам нужно взглянуть на папку «assets».

...