У меня есть заставка с ImageView
играющим часть фона. Независимо от того, разрешаю ли я растровое изображение масштабировать (что я делаю), качество изображения ужасно. Я думаю, что это уменьшает глубину цвета. Я уже огляделся вокруг, и одно предложение заключалось в том, чтобы поместить мой образ в raw
а не с возможностью drawable
но это тоже не помогло. Вот скриншот:
Что именно происходит здесь и как это исправить?
EDIT: я не применял это растровое изображение программно, поэтому нет соответствующего Java-кода. Вот код XML для этого действия:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/RelativeLayoutSplash" android:layout_width="match_parent" android:layout_height="match_parent" android:drawingCacheQuality="high" android:orientation="vertical" android:padding="@dimen/splash_padding" android:scrollbarAlwaysDrawVerticalTrack="true" tools:context=".SplashActivity" > <ImageView android:id="@+id/ImageViewBg" android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="@string/logo_description" android:scaleType="centerCrop" android:src="@drawable/splash_bg_register" /> <ImageView android:id="@+id/ImageViewLogo" android:layout_width="match_parent" android:layout_height="wrap_content" android:contentDescription="@string/logo_description" android:maxHeight="@dimen/logo_maxheight" android:maxWidth="@dimen/logo_maxwidth" android:layout_centerVertical="true" android:src="@drawable/logo" /> <TextView android:id="@+id/TextViewCopyright" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:text="@string/copyright" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/white_50" android:textSize="@dimen/copyright_size" /> </RelativeLayout>
EDIT: Я попытался getWindow().setFormat(PixelFormat.RGBA_8888);
Как было предложено, что имело заметную разницу, но полоса все еще присутствует. Это изображение, которое я использую в качестве фона.
Перевязка происходит в основном, когда пропорции изображения нарушены.
Вы можете попробовать любое из следующих действий:
Сделайте свое изображение .9.png
. В этом случае он автоматически фиксирует любые участки и ухаживает за обвязкой.
Примените поверхностное сглаживание к вашему изображению, которое может помешать любому необычному диапазону.
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/b1" android:tileMode="repeat" android:dither="true" />
Каковы размеры вашего изображения? И что это за устройство? Я подозреваю, что размер изображения не соответствует размеру дисплея, и он находится в неправильной папке с ресурсом. Изображение выглядит довольно масштабированным. Эти статьи помогут вам выбрать разрешение изображения и папку ресурсов для разных экранов.
http://developer.android.com/guide/practices/screens_support.html
http://developer.android.com/training/multiscreen/index.html
Вы должны установить цветной формат окна. В вашей деятельности добавьте что-то вроде этого:
getWindow().setFormat(PixelFormat.RGBA_8888);
Я предполагаю, что размер изображения меньше площади, в которой отображается изображение. Таким образом, может быть изображение масштабируется и теряется качество.
What you can try is: 1. Either put the image of similar dimension 2. use 9 patch image ( good idea )
Вам нужно изменить размер изображения на разные размеры и поместить их в соответствующие доступные папки под res/
Попробуйте antialias, это может решить вашу проблему.
Создайте растровое изображение с помощью xml.
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/background" android:antialias="true" android:dither="true" />
То, что вы делаете, – это установить образ в xml, который намного больше зависит от того, для чего поддерживает разрешение этого изображения.
Существует несколько папок для каждой поддерживаемой плотности нескольких устройств, поместите свое изображение в подходящую папку с разрешением dpi.
Пожалуйста, обратитесь к этой ссылке http://developer.android.com/guide/practices/screens_support.html
См. Тот же значок приложения, как неуверенно ведут себя в разных папках
Пример применения без поддержки разных плотностей, как показано на экранах с низкой, средней и высокой плотностью
Пример приложения с хорошей поддержкой для разных плотностей (он не зависит от плотности), как показано на экранах с низкой, средней и высокой плотностью.
Просто настройте его, сделав изображение фоновым изображением. Вот пример кода
<ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/your_image" />