ist das ein bug?

  • Antworten:1
  • Bentwortet
Marco S.
  • Forum-Beiträge: 105

15.02.2011, 14:10:10 via Website

hallo zusammen,

ich hab da ein seltsames verhalten entdeckt, es geht dabei um elemente einer liste, die einen speziellen background haben.

ich benutze als background ein xml, welches eine layer-list darstellt.

darin habe ich eine kleine grafik (ein kringel), der mittels bitmap tileMode="repeat" wiederholt wird.

darüber kommt noch ein farbverlauf und ein rahmen.


nun ist es leider so, dass manchmal (sehr unterschiedlich, aber reproduzierbar) statt der sich wiederholenden grafik nur der eine kringel angezeigt wird, der aber aufs maximum vergrössert, aber farbverlauf und rahmen bleiben bestehen.


hier das xml:

1<?xml version="1.0" encoding="utf-8"?>
2<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
3
4 <item>
5 <shape android:shape="rectangle">
6 <solid android:color="@color/white" />
7 </shape>
8 </item>
9
10 <item android:top="5dip" android:right="5dip" android:bottom="5dip" android:left="5dip">
11 <bitmap android:src="@drawable/background_tile_blue" android:tileMode="repeat" />
12 </item>
13
14 <item android:top="5dip" android:right="5dip" android:bottom="5dip" android:left="5dip">
15 <shape android:shape="rectangle">
16 <gradient android:startColor="#ddffffff" android:endColor="#00ffffff" android:angle="0" android:type="linear" />
17 </shape>
18 </item>
19
20 <item android:top="5dip" android:right="5dip" android:bottom="5dip" android:left="5dip">
21 <nine-patch android:src="@drawable/background_border_blue" android:dither="true" />
22 </item>
23
24</layer-list>

hat jemand eine idee wie ich das umgehen kann=

viele grüße
marco

— geändert am 15.02.2011, 14:11:34

Antworten
Marco S.
  • Forum-Beiträge: 105

18.02.2011, 11:27:59 via Website

ich habe dann die frage mal in den google groups gestellt, und das hier ist die lösung:

im listadapter nach dem layout-inflating mach ich das hier:

1LayerDrawable ld = (LayerDrawable)view.getBackground();
2BitmapDrawable bd = (BitmapDrawable)ld.getDrawable(0);
3bd.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT);

viele grüße
marco

Antworten