我希望按钮上有onClick()
动画。
我已经尝试了
myButton.setBackgroundResource(0)
和
myButton.setBackgroundColor(Color.TRANSPARENT)
但这两个都禁用了onClick()
动画。
答案 0 :(得分:6)
如果您需要控制可点击的项目设计,可以使用<selector>
创建一个drawable。
如果您只需要使视图透明并应用系统默认的按下颜色,则可以使用AppCompat的selectableItemBackground
,如下所示:
TypedValue outValue = new TypedValue();
getContext().getTheme().resolveAttribute(R.attr.selectableItemBackground, outValue, true);
myButton.setBackgroundResource(outValue.resourceId);
或XML格式:
android:background="?attr/selectableItemBackground"
查看this question以获取更多信息。
答案 1 :(得分:1)
你可以在drawable中创建选择器,并可以设置为按钮背景。在这里你可以指定按下,聚焦等的统计数据。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" >
<shape android:shape="rectangle" >
<corners android:radius="3dip" />
<stroke android:width="1dip" android:color="@color/theme_text_color" />
<gradient android:angle="-90" android:startColor="@color/blue_transparent" android:endColor="@color/blue_transparent" />
</shape>
</item>
<item android:state_focused="true">
<shape android:shape="rectangle" >
<corners android:radius="3dip" />
<stroke android:width="1dip" android:color="@color/theme_text_color" />
<solid android:color="@color/theme_text_color"/>
</shape>
</item>
<item >
<shape android:shape="rectangle" >
<stroke android:width="1dip" android:color="#00000000" />
<gradient android:angle="-90" android:startColor="#00000000" android:endColor="#00000000" />
</shape>
</item>
</selector>
在xml文件中
android:background="@drawable/selector_button"
或以编程方式
myButton.setBackgroundResource(R.drawable.selector_button);