【问题标题】:how to achieve transparency for an imagebutton in android如何在android中实现图像按钮的透明度
【发布时间】:2011-04-20 14:04:40
【问题描述】:

我希望图像按钮透明地出现在屏幕上,所以我在 XML 文件中创建了 android:background="@null",因此它删除了图像按钮周围的灰色边框。它解决了我的问题,但是当我点击imagebutton 它没有显示任何背景颜色。但我需要一些背景颜色才能在点击时出现。所以我添加了 android:padding="3dp"。它移除了两侧的边框,但没有移除顶部的边框。

<ImageButton  
android:id="@+id/btnphoto"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:src="@drawable/photo"  
android:layout_x="4px"  
android:layout_y="370px"  
android:padding="3dp" /> 

请帮帮我。
提前致谢。

【问题讨论】:

    标签: android imagebutton


    【解决方案1】:

    要更改状态变化的视图方面(单击、按下、聚焦,...),您可以使用 StateListDrawable 作为 android:backgroundColorStateList 也很有用。

    This post 展示了如何使用的一个很好的例子。

    【讨论】:

      【解决方案2】:
      android:background="@android:color/transparent"
      

      或者,如果您只想要一些透明度,您可以使用 Alpha 通道来控制它。

      类似

      android:background="#7F000000"
      

      将是部分透明的黑色。

      【讨论】:

        【解决方案3】:

        您可以尝试使用 XML 中的图像或形状制作自定义按钮背景...

        例如,这种形状使一个按钮状态,其中颜色是透明的,因为它们是 ARGB 类型。

        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
        
            <solid
                android:color="#EB363636" />
            <corners
                android:bottomRightRadius="7dp"
                android:bottomLeftRadius="7dp"
                android:topLeftRadius="7dp"
                android:topRightRadius="7dp" />
            <stroke
                android:width="2dip"
                android:color="#D1000000" />
        </shape>
        

        然后你可以组合多个形状/图像来让一个按钮对不同的状态做出反应:

        <selector xmlns:android="http://schemas.android.com/apk/res/android"
            android:dither="true">
        
            <item 
                android:state_window_focused="false"
                android:drawable="@android:color/transparent" />
            <item 
                android:state_pressed="true"
                android:drawable="@layout/shape_btn"/>
            <item 
                android:state_focused="true"
                android:drawable="@layout/shape_btn"/>
            <item
                android:drawable="@android:color/transparent"/>
        
        </selector>
        

        制作选择器后,您可以使用 android:background="NAME OF SELECTOR FILE" 将其用作按钮背景

        【讨论】:

          猜你喜欢
          • 2012-06-15
          • 2020-06-11
          • 2012-03-06
          • 2021-09-18
          • 1970-01-01
          • 2014-01-05
          • 2014-05-11
          • 1970-01-01
          • 2019-09-21
          相关资源
          最近更新 更多