我们走了。我有一个非按下状态背景为透明的按钮。按下按钮后,背景不再透明(参见图片)。我为你的所有图像使用了9个补丁。
这是我的选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/starfighterstartbtndown" android:state_pressed="true"/>
<item android:drawable="@drawable/starfighterstartbtn"/>
</selector>
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/mainMenuImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/starfighter" >
</ImageView>
<RelativeLayout
android:id="@+id/buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/btnStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="@android:color/transparent"
android:clickable="true"
android:hapticFeedbackEnabled="true"
android:src="@drawable/startselector" >
</ImageButton>
<ImageButton
android:id="@+id/btnExit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:clickable="true"
android:src="@drawable/exitselector"
android:background="@android:color/transparent"
android:hapticFeedbackEnabled="true" >
</ImageButton>
</RelativeLayout>
未点击:
已点击:
我也试过以下方法但没有运气
button.getBackground().setAlpha(0);
button.setBackgroundColor(Color.TRANSPARENT);
还在onClickListener()
中尝试了以下内容view.getBackground().setAlpha(0);
view.setBackgroundColor(Color.TRANSPARENT);
button.getBackground().setAlpha(0);
button.setBackgroundColor(Color.TRANSPARENT);
仍然没有运气。祝你好运:)
答案 0 :(得分:7)
要使您的按钮的背景在非按下状态下透明,您的选择器应如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/starfighterstartbtndown" android:state_pressed="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>
在你的imageButton中,xml中的声明应该使用选择器作为背景,不要将任何东西作为你的imageButton的来源:
<ImageButton
android:id="@+id/btnStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/startselector"
android:background="@android:color/transparent"
android:clickable="true"
android:hapticFeedbackEnabled="true" />
答案 1 :(得分:0)
您可以使用Color.argb()。它需要四个int参数,每个参数范围从0到255。
假设你想要一个50%alpha的蓝色按钮:
button.setBackgroundColor(Color.argb(125, 0, 0, 255));
答案 2 :(得分:-1)
你也可以尝试这个
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"/>