2012-07-22 27 views

Trả lời

24

chắc. Chỉ cần sử dụng LayerListDrawable.

Cái gì như:

<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> 

Lưu trong thư mục res/drawables của bạn, và sử dụng nó như là nền của bạn.

Đáng buồn thay, nếu ứng dụng của bạn phức tạp hơn, đôi khi tileMode sẽ bị bỏ đặt không có lý do rõ ràng. Nếu bạn chạy vào đó, bạn sẽ phải thêm lại chế độ ngói trong Java.

Tôi thường vẫn đặt nó trong xml, và sau đó làm điều gì đó như:

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, đó là những gì tôi đang tìm kiếm. – Signcodeindie

+0

@ABentSpoon, chính xác những gì tôi đang tìm kiếm nhưng hình ảnh bị kéo dài. Làm cách nào để giữ tỷ lệ co của hình ảnh? – Euridice01

0

Có.

Bạn có thể sử dụng ImageView. Đặt màu nền của nó và đặt hình ảnh bán trong suốt làm nguồn của nó.

Nếu bạn muốn làm điều này với một bố trí, sau đó mở rộng bố trí đó và trong ghi đè OnDraw(), vẽ màu nền và pha trộn với hình ảnh bán trong suốt

Paint p = new Paint(); 
p.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY)); 
Các vấn đề liên quan