如何创建一个通过透明背景图片可见背景颜色的Button?

发布于 2024-11-17 10:42:58 字数 574 浏览 2 评论 0原文

早些时候,我能够动态创建一个 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);
}

如果运行上面的命令,则只有图像可见。如果我将对 setBackgroundColor 的调用移到对 setBackgroundDrawable 的调用下方,我只会看到红色,而不是图像。我怎样才能做到既可以看到图像,又可以通过其透明部分看到背景?

Earlier, I was able to dynamically create an android.widget.Button whose background color was visible through the transparent parts of the Button's background image. I have not been able to re-create this. I have tried:

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);
}

Only the image is visible if I run the above. If I move the call to setBackgroundColor below the call to setBackgroundDrawable, I only see the red, not the image. How can I make it so I can see both the image and, through its transparent parts, the background?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱花坊 2024-11-24 10:42:58

首先,使用 ImageButton 更容易,它有两层,一层是背景,另一层是顶部的图像。
使用button.setBackgroundColor设置背景颜色

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

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

First it is easier to use an ImageButton, which has two layers, one is the background and the other the image on top.
Set your background color with button.setBackgroundColor

then set the transparent image on top: button.setImageDrawable(getResources().getDrawable(R.drawable.transparent)); or set SRC preperty in XML

Use the button padding settings to adjust how much backround color should go around the image.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文