【问题标题】:Transparent widget background?透明小部件背景?
【发布时间】:2011-07-03 12:46:07
【问题描述】:

在 Android 小部件上,我怎样才能给背景一个颜色,但同时又是透明的?请在屏幕截图中查看时钟的背景。这是一个黑色但透明的背景。我怎样才能在我自己的小部件上做到这一点?我是否也可以参考系统颜色,例如 HTC Sense 屏幕截图中的颜色?感谢您的任何提示!

【问题讨论】:

    标签: android android-layout android-widget transparency


    【解决方案1】:

    您必须为您的资源指定一个 alpha 通道(=透明通道)。

    如果您在 XML res 中使用标准颜色(例如来自您的 colors.xml)来填充背景, 您可以通过更改前两个数字来指定 alpha。 示例格式:

    <color name="transparent_red">#99FF0000</color>
    

    这里的 99 表示 alpha 值,将其更改为 FF 将产生纯红色,将其更改为 00 将使整个颜色不可见。只需通过更改中间值来测试一下。

    详情请看here

    如果您想使用实际的图片/位图,就像感觉一样, 您必须创建带有指定 alpha 通道的 PNG 图像。 这取决于您用于创建位图的软件。 我推荐使用 Illustrator 或 Inkscape 等矢量图形程序来执行此操作,它们在您指定颜色时具有 alpha 值。在此处创建后,将图像导出为 PNG 并将其添加到您的应用资源中。

    【讨论】:

      【解决方案2】:
      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:orientation="vertical"
          android:background="@android:color/transparent">
      
          <ImageView
              android:id="@+id/widget_image"
              android:layout_width="110sp"
              android:layout_height="110sp"
              android:layout_gravity="center"
              android:src="@drawable/appicon" />
      </LinearLayout>
      

      只需将布局的背景设置为透明。添加以下代码。这对我有用,它是一个小部件。

      android:background="@android:color/transparent"
      

      【讨论】:

        【解决方案3】:

        android:background="#TTRRGGBB -- RR、GG、BB 是(十六进制)红、绿、蓝分量,TT 是透明度分量。使用 TT = 80(十六进制)表示 50% 的透明度,FF 表示不透明,00 表示完全透明。

        或者使用带有透明度组件的 png,就像您的屏幕截图所使用的那样。

        【讨论】:

          猜你喜欢
          • 2021-04-30
          • 2018-09-14
          • 1970-01-01
          • 2013-06-15
          • 1970-01-01
          • 2017-12-03
          • 2019-05-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多