Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何删除按钮的后台资源?_Android_Android Button - Fatal编程技术网

Android 如何删除按钮的后台资源?

Android 如何删除按钮的后台资源?,android,android-button,Android,Android Button,我提到了这一点,但我需要删除按钮背景,这应该根据deviceDefault主题更改背景。意味着只删除上次添加的资源,而不分配新资源 有人能帮忙解决这个问题吗?谢谢尝试在xml文件中分配背景:@null 对于编程尝试布局。setBackgroundResource(0) 这应该对您有所帮助如果您只做了几次,一个简单的方法是在更改之前保存以前的背景。您可以将其存储在按钮的标记字段中: //store previous background drawable myButton.setTag(myBut

我提到了这一点,但我需要删除按钮背景,这应该根据deviceDefault主题更改背景。意味着只删除上次添加的资源,而不分配新资源


有人能帮忙解决这个问题吗?谢谢

尝试在xml文件中分配背景:@null 对于编程尝试布局。setBackgroundResource(0)


这应该对您有所帮助

如果您只做了几次,一个简单的方法是在更改之前保存以前的背景。您可以将其存储在按钮的
标记
字段中:

//store previous background drawable
myButton.setTag(myButton.getBackground());

//    ... alter background, do whatever


//restore background drawable from tag
myButton.setBackground((Drawable)myButton.getTag());

您可以通过更改后台资源来实现这一点。在XML文件中,用于按钮的属性

<Button
    ...
    android:background="@null" />


应该这样做。

您可以添加样式,而不是将背景设置为@null:

<Button
    ...
    style="@style/Widget.AppCompat.Button.Borderless" />


成功删除预定义的背景。

我不明白你在问什么。“移除”后,按钮是否应与系统默认按钮相似?如果是这样,您链接到的答案就是这样。如果没有,请澄清。是的,你是正确的。在该链接中添加了btn_默认值,这是默认的android按钮,但在我的情况下,我有自己的theame ie DeviceDefault主题,其中按钮的外观和感觉是不同的。这与上述链接中的ans相同。添加您的_按钮。SetBackgroundResource(0)将删除任何预定义的背景。然后您必须设置默认按钮的外观和感觉,您将从android.R.drawable folder获得该功能,但它必须在应用所需的默认主题时工作,如果这不起作用,你必须创建一个全新的按钮,没有明确的背景定义。btn_default.xml是一个可绘制的文件,为框架中android按钮背景的默认外观定义。我想可以应用这个逻辑,我会尝试让你回来。谢谢,我喜欢这个解决方案,因为它的效果会显示在设计视图中,而“@null”不会。如果有人像我一样继承了其他按钮样式,你会注意到将背景更改为“@null”不会生效。因此,我可以使用这个解决方案来更改按钮的样式(这非常适合我),或者通过编程更改背景资源。
<Button
    ...
    style="@style/Widget.AppCompat.Button.Borderless" />
your_view.setBackground(null);