Как добавить изображение в формате PNG в качестве фона в Android без изменения (полосы)? - PullRequest
4 голосов
/ 12 октября 2011

Я пытаюсь добавить фон с градиентом (я хочу использовать изображение, а не объявленный Android-эффект градиента xml).

Это изображение замечательно испорчено Android, оно добавляет какую-то дерьмовую полосу, что бы я ни пытался, результат один и тот же (два снимка примерно в одной области с искаженными / нормальными изображениями):

distorted normal

Мое изображение используется в качестве фона макета внутри моего макета XML:

android:background="@drawable/background_gradient_dithered"

Я пытался использовать промежуточное рисование, чтобы вызвать дизеринг, xml которого:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/background_gradient" android:dither="true" android:antialias="true" android:filter="true"/>

Я пытался добавить следующий код в onCreate ():

getWindow().setFormat(PixelFormat.RGBA_8888);

Обе попытки ничего не изменили.

Спасибо

Ответы [ 3 ]

2 голосов
/ 16 октября 2011

Правильное решение было ... Готов поспорить, вы догадались: перезапуск Eclipse. Я узнал это, каждая проблема на Android может быть «проблема перезапуска Eclipse».

После некоторого теста я могу добавить, что включение размораживания бесполезно, если для параметра Format установлено значение PixelFormat.RGBA_8888

Читатели должны взглянуть на ответ, заданный @ TenFour04, этот подход позволяет избежать рисования просточтобы включить дизеринг.

window.addFlags(WindowManager.LayoutParams.FLAG_DITHER);

РЕДАКТИРОВАТЬ:

Я обнаружил, что даже с этими приемами проблема может сохраняться.Вы можете попытаться изменить свой PNG, чтобы в нем был альфа-слой (например, изменить пиксель до прозрачности 99%), это заставит компилятор Android не играть с ним.

1 голос
/ 16 октября 2011

Попробуйте добавить это в onCreate ().В старых версиях Android по умолчанию отсутствует сглаживание.

Window window = getWindow();
window.setFormat(PixelFormat.RGBA_8888);
window.addFlags(WindowManager.LayoutParams.FLAG_DITHER);
0 голосов
/ 23 июня 2013

Я разобрался, просто измените размер файлов .png. Я поместил их в mdpi и изменил его размер с помощью открытого исходного изображения Irfanview <до <code>1024x7xx <- не помню, <a href="http://developer.android.com/guide/practices/screens_support.html" rel="nofollow"> это слишком удобно и я установил его на 300 dpi. Поэтому они загружают его на планшет и прочее, надеюсь, это поможет:)

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