2012-07-22 23 views

回答

24

当然融为一体。只需使用一个LayerListDrawable。

喜欢的东西:

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

保存在您的res/drawables目录,并把它作为你的背景。不幸的是,如果你的应用程序更复杂,有时tileMode会因没有明显的原因而被取消设置。如果你熟悉这一点,你将不得不在Java中重新添加拼贴模式。

我平时还是将其设置为XML,然后像做:

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

真棒,这就是我一直在寻找的。 – Signcodeindie 2013-03-13 13:54:56

+0

@ABentSpoon,正是我正在寻找,但图像被拉伸。如何保持图像的宽高比? – Euridice01 2016-08-11 20:45:59

0

是的。

您可以使用ImageView。设置其背景色并将半透明图像设置为其来源。

如果你想这样做的布局,然后再扩展该布局和重写的onDraw(),绘制背景颜色,并与半透明图像

Paint p = new Paint(); 
p.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY)); 
相关问题