PNG является 100%-й заменой для файлов GIF и поддерживается всеми веб-браузерами, с которыми Вы, вероятно, встретитесь.
существуют очень, очень немного ситуаций, где GIF был бы предпочтителен. Самый важный является анимацией - стандартная анимация поддержек GIF89a, и фактически каждый поддержка браузера это, но простой формат PNG не делает - необходимо было бы использовать MNG для этого, которое ограничило поддержку браузера.
Фактически все браузеры поддерживают одноразрядную прозрачность в файлах PNG (тип прозрачности, предлагаемой форматом GIF). Существует отсутствие поддержки в IE6 для полной 8-разрядной прозрачности PNG, но это может быть исправлено для большинства ситуаций небольшим волшебством CSS.
, Если Ваши файлы PNG выходят больше, чем эквивалентные файлы GIF, это почти наверняка, потому что Ваше исходное изображение имеет больше чем 256 цветов. Файлы GIF индексируются к максимальной палитре 256 цветов, в то время как файлы PNG в большинстве графических программ по умолчанию сохранены в 24-разрядном формате без потерь. Если размер файла более важен, чем точные цвета, сохраните файл как 8-разрядный индексируемый PNG, и это должно быть эквивалентно GIF или лучше.
возможно "взломать" файл GIF для имения больше чем 256 цветов с помощью комбинации кадров анимации с флагами do-not-replace и несколькими палитрами, но об этом подходе фактически забыли начиная с появления PNG.
Используйте xjc: serializable
в файле пользовательских привязок, чтобы добавить java.io.Serializable
интерфейс для ваших классов вместе с serialVersionUID
:
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xsi:schemaLocation="
http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
version="2.1">
<globalBindings>
<serializable uid="1" />
</globalBindings>
</bindings>
Используйте суперкласс (см. xjc: superClass
), от которого будут унаследованы все ваши связанные классы. Этот класс не будет генерироваться xjc, поэтому вы можете создавать его по своему усмотрению (здесь с реализацией toString ()
):
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xsi:schemaLocation="
http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
version="2.1">
<globalBindings>
<serializable uid="1" />
<xjc:superClass name="the.package.to.my.XmlSuperClass" />
</globalBindings>
</bindings>