Я смог решить мою проблему самостоятельно.Так что я отвечаю на это для всех остальных;).
Проблема заключалась в том, что я однажды загрузил свой drawable в конструктор, потому что я думал, что мне не придется загружать его для каждого нового элемента списка.Но андроид-система обрабатывает их как один и тот же объект памяти.поэтому каждый listitem-background использует одно и то же пространство памяти (я надеюсь, что это не так, я так думаю).Если я начну прокручивать, будет объявлен следующий элемент списка и изменит высоту и ширину его фона в соответствии с его потребностями. Например, следующий элемент имеет высоту всего 50 dp, он изменяет сохраненное значение на это.Теперь каждый второй фон списка также будет меняться более или менее на эту высоту.
Простое исправление состоит в том, что вам нужно загрузить и применить цветовой фильтр для каждого нового элемента.ESPEC.в методе getView.
@Override
public View getView(int pos, View convertView, ViewGroup parent) {
View v = null;
leftbox = (NinePatchDrawable) r.getDrawable(R.drawable.bubble_green);
leftbox.setColorFilter( 0xff00c0ff, Mode.MULTIPLY );
v = inflater.inflate(R.layout.list_view_item_right, null);
TextView t = (TextView)v.findViewById(R.id.text);
t.setBackgroundDrawable(leftbox);
Я надеюсь, что этот ответ был полезен.
РЕДАКТИРОВАТЬ (В тысячу раз проще):
Если вы хотите применить colorFilter только кLayout (Textview ...) сделать это так (спасибо Паша):
TextView t = (TextView)v.findViewById(R.id.text);
t.getBackground().setColorFilter(0xff00c0ff, Mode.MULTIPLY );