如何在android中以编程方式添加无边框按钮?

时间:2015-08-18 11:30:33

标签: android android-layout

我希望按钮上有onClick()动画。

我已经尝试了

myButton.setBackgroundResource(0) 

myButton.setBackgroundColor(Color.TRANSPARENT)

但这两个都禁用了onClick()动画。

2 个答案:

答案 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);