2012-07-22 14 views

Antwort

24

Sicher. Verwenden Sie einfach ein LayerListDrawable.

Etwas wie:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="#FF00ffff" /> 
     </shape> 
    </item> 
    <item> 
     <bitmap 
      android:src="@drawable/your_tiled_drawable" 
      android:tileMode="repeat" /> 
    </item> 
</layer-list> 

speichern, die in Ihrem res/drawables Verzeichnis, und es als Hintergrund verwenden.

Leider, wenn Ihre Anwendung komplizierter ist, wird der tileMode manchmal ohne ersichtlichen Grund deaktiviert. Wenn Sie dazu kommen, müssen Sie den Kachelmodus in Java erneut hinzufügen.

ich es in der Regel noch in xml gesetzt, und dann wie etwas tun:

View v = findViewById(R.id.my_view); 
LayerDrawable lld = (LayerDrawable) v.getBackground(); 
BitmapDrawable tiled = (BitmapDrawable) lld.getDrawable(1); 
tiled.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT); 
+0

Awesome, das ist, was ich gesucht habe. – Signcodeindie

+0

@ABentSpoon, genau das, was ich suche, aber das Bild wird gestreckt. Wie behalte ich das Seitenverhältnis des Bildes? – Euridice01

0

Ja.

Sie könnten ImageView verwenden. Stellen Sie die Hintergrundfarbe ein und stellen Sie das halbtransparente Bild als Quelle ein.

Wenn Sie dies zu einem Layout tun möchten, erweitern dann das Layout und in überschriebene OnDraw(), die Hintergrundfarbe zeichnen und vermischen sich mit dem halbtransparenten Bild

Paint p = new Paint(); 
p.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY)); 
Verwandte Themen