【问题标题】:How to apply transparency only on background color of buttons如何仅对按钮的背景颜色应用透明度
【发布时间】:2019-01-28 15:41:55
【问题描述】:

我是 Android Studio 的初学者,我需要您的帮助才能在我的布局上应用特定的透明度。

我使用这个可绘制对象为我的布局应用了背景和边框颜色:

    <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@android:color/black" />
    <corners android:radius="3dp" />
    <stroke android:width="5px" android:color="#ffa500" />
</shape>

现在我想动态地为这个按钮应用透明度(通过使用搜索栏),但只在背景颜色上我不想修改我的边框颜色。 我尝试使用 setAlpha 函数,但它也改变了我的边框颜色透明度。

我该怎么做? 谢谢。

【问题讨论】:

标签: java android


【解决方案1】:

在您的形状中将&lt;solid android:color="@android:color/black" /&gt; 更改为&lt;solid android:color="#00FFFFFF" /&gt; 这将使您的形状透明。 在你的 xml 中 &lt;Button .... android:background="@drawable/your_shape" /&gt;

【讨论】:

  • 感谢您的回复。我忘了指定我想使用搜索栏动态更改透明度。
  • 好的,但如果我理解正确你想从透明开始?动态改变颜色由java类控制。打开带有相应问题描述的新问题。
【解决方案2】:

您需要使用您在项目中指定的颜色的 alpha 部分。

例如 - #aarrggbb -- aa 部分是 alpha。

如果你想单独改变笔触/纯色,我推荐使用 GradientDrawable 到 setStroke() 和 `setColor()'。

供参考-

https://developer.android.com/reference/android/graphics/drawable/GradientDrawable#setColor(int)

https://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html#setStroke(int,%20android.content.res.ColorStateList,%20float,%20float)

【讨论】:

  • 我忘记指定我想使用搜索栏动态更改透明度。
  • 非常感谢这对我很有帮助!
猜你喜欢
  • 1970-01-01
  • 2014-03-22
  • 2013-02-05
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-11
  • 2015-02-10
相关资源
最近更新 更多