Есть ли общий способ узнать, является ли файл поддерживаемым типом изображения? - PullRequest
0 голосов
/ 25 июня 2011

есть ли способ узнать, является ли файл поддерживаемым типом изображения в общем виде? Конечно, я мог бы посмотреть на расширение имени файла и сравнить его с известным набором строк, но есть ли «андроидный» способ сделать это более обобщенно?

действительно, я хочу знать, могу ли я декодировать и отображать изображение.

Ответы [ 2 ]

1 голос
/ 25 июня 2011

На самом деле есть лучший способ (все еще использующий BitmapFactory, хотя).Вы можете использовать ту же самую фабрику, но НЕ читать саму битовую карту (которая намного быстрее конечно).Существует версия decodeFile, в которой есть параметр Options, и вы можете указать, что он должен читать только размер растрового изображения (и тип курса), а не сам растровое изображение:

String filePath;// assign the file to the path
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
Bitmap img = BitmapFactory.decodeFile(filePath, options);
if (img == null) {
  // invalid image file
}
else {
  // valid image file
}
0 голосов
/ 25 июня 2011

Самый простой (и самый надежный) способ сделать это - попытаться открыть и декодировать как Bitmap - что-то вроде:

String filePath;// assign the file to the path
Bitmap img = BitmapFactory.decodeFile(filePath);
if (img == null) {
  // invalid image file
}
else {
  // valid image file
}

Это не красиво, но работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...