Android自定义按钮按下时不需要闪烁的黑色边框
我遇到了一个奇怪的问题,我在网上找不到任何东西。我创建了一个自定义选择器,它有一个默认的布局列表,按下时会切换到另一个。它看起来像这样(button.xml):Android自定义按钮按下时不需要闪烁的黑色边框,android,xml,Android,Xml,我遇到了一个奇怪的问题,我在网上找不到任何东西。我创建了一个自定义选择器,它有一个默认的布局列表,按下时会切换到另一个。它看起来像这样(button.xml): 这就是布局列表的外观 这是一个示例按钮 <Button android:layout_width="40dp" android:layout_height="40dp" android:background="@drawable/button" /> 现在的问题是按下按钮会创建一个随机的黑色边框,
这就是布局列表的外观
这是一个示例按钮
<Button
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/button" />
现在的问题是按下按钮会创建一个随机的黑色边框,填充其宽度和高度(按住按钮会导致边框闪烁)。这不会发生在我的三星Galaxy标签A上,但会发生在我的索尼Xperia Z3+上。这是随机发生的,但当它发生时,它似乎会一直发生,直到我重新启动该活动,所以它要么在每次按下时发生,要么根本不发生,这取决于该活动是否被“窃听(?)”
我希望你能理解我的问题,英语不是我的母语。顺便说一句,我不会以编程方式对按钮做任何事情
谢谢
更新:我的一个朋友在他的手机上尝试了这个应用程序,这是一款较旧的htc,他得到了同样闪烁的边框。也曾在三星galaxy s5上试用过,但在该设备上没有。无法解决此问题。请在您的button.xml上尝试以下代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:drawable="@drawable/fbutton_pressed" android:state_pressed="true"/>
<!-- default -->
<item android:drawable="@drawable/fbutton_unfocused"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:state_pressed="true"/>
<layer-list>
<item
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp">
<shape android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#BFBFBF" />
<gradient
android:angle="90"
android:centerColor="#e5f0ff"
android:endColor="#b3d3ff"
android:startColor="#99c4ff" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
</item>
</layer-list>
</item>
<!-- unpressed -->
<item android:state_enabled="true">
<layer-list>
<item
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp">
<shape android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#BFBFBF" />
<gradient
android:angle="90"
android:centerColor="#F4F4F4"
android:endColor="#E5E5E5"
android:startColor="#d3d3d3" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
</item>
</layer-list>
</item>
</selector>
在您的button.xml上尝试以下代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:drawable="@drawable/fbutton_pressed" android:state_pressed="true"/>
<!-- default -->
<item android:drawable="@drawable/fbutton_unfocused"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:state_pressed="true"/>
<layer-list>
<item
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp">
<shape android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#BFBFBF" />
<gradient
android:angle="90"
android:centerColor="#e5f0ff"
android:endColor="#b3d3ff"
android:startColor="#99c4ff" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
</item>
</layer-list>
</item>
<!-- unpressed -->
<item android:state_enabled="true">
<layer-list>
<item
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp">
<shape android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#BFBFBF" />
<gradient
android:angle="90"
android:centerColor="#F4F4F4"
android:endColor="#E5E5E5"
android:startColor="#d3d3d3" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
</item>
</layer-list>
</item>
</selector>
小语法错误
应该是
供其他想尝试的人使用。不过,这并没有解决我的问题,随机边界仍然以某种方式出现,但非常感谢您的尝试和帮助。:)小语法错误
应该是
供其他想尝试的人使用。不过,这并没有解决我的问题,随机边界仍然以某种方式出现,但非常感谢您的尝试和帮助。:)