如何通过透明背景图像创建背景颜色可见的按钮?

时间:2011-06-27 21:26:56

标签: android button view transparency

之前,我能够动态创建一个android.widget.Button,其背景颜色通过Button的背景图像的透明部分可见。我无法重新创建这个。我试过了:

Button button = (Button) findViewById(id.button1);
try {
    button.setBackgroundColor(Color.RED);
    Bitmap bm = BitmapFactory.decodeStream(getAssets().open("transparent.png"));
    button.setBackgroundDrawable(new BitmapDrawable(bm));
    button.invalidate();
} catch (IOException e) {     
    throw new RuntimeException(e);
}

如果我执行上述操作,则只能看到图像。如果我在调用setBackgroundDrawable之下移动调用setBackgroundColor,我只看到红色,而不是图像。我怎样才能这样做,这样我才能看到图像,透过它的透明部分,看到背景?

1 个答案:

答案 0 :(得分:0)

首先,使用ImageButton更容易,ImageButton有两层,一层是背景,另一层是顶层图像。 使用button.setBackgroundColor

设置背景颜色

然后将透明图像设置在顶部:button.setImageDrawable(getResources().getDrawable(R.drawable.transparent));或在XML中设置SRC preperty

使用按钮填充设置调整图像周围的背景颜色。