求助:在shape中使用gradient渲染按钮,偶尔会出现失效的情况

你個臭鴨蛋 2014-09-25 09:31:31
如下图为我希望实现的效果:

大多数情况下,这个页面是正常的,但是偶尔会出现下面的情况:


下面是我所使用的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true">
<shape>
<gradient
android:startColor="#F5AA1C"
android:centerColor="#F29600"
android:endColor="#F5AA1C"
android:angle="270"
/>
<stroke android:width="1dp" android:color="#FBB343" />
<corners android:topLeftRadius="6dp" android:topRightRadius="6dp"
android:bottomRightRadius="6dp" android:bottomLeftRadius="6dp" />
</shape>
</item>

<item>
<shape>
<gradient
android:startColor="#FBB03A"
android:centerColor="#FBB03B"
android:endColor="#FBB03A"
android:angle="270"
/>
<stroke android:width="1dp" android:color="#FBB343" />
<corners android:topLeftRadius="6dp" android:topRightRadius="6dp"
android:bottomRightRadius="6dp" android:bottomLeftRadius="6dp" />
</shape>
</item>

</selector>


在按钮中使用这个selector:
<Button
android:id="@+id/button_delete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:layout_marginTop="20dip"
android:background="@drawable/dialog_button_notice"
android:padding="10dip"
android:text="@string/detail_delete_camera"
android:textColor="@color/notice_button_font_color"
android:textSize="18sp"
android:textStyle="normal" />


请大家帮我看看这个到底出了什么问题,不胜感激。
...全文
197 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
衷水木先生 2015-10-27
  • 打赏
  • 举报
回复
个人感觉应该是item中状态声明的问题,在系统识别android:state_pressed="true or false"时出现问题所致,建议把下边的android:state_pressed="false"补上,因为你不补上的话不管什么情况都满足下边的条件,可能导致系统混乱,建议严谨代码!
十三邵 2014-09-26
  • 打赏
  • 举报
回复
引用 楼主 luofsong 的回复:
如下图为我希望实现的效果: 大多数情况下,这个页面是正常的,但是偶尔会出现下面的情况: 下面是我所使用的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <shape>
            <gradient
                android:startColor="#F5AA1C"
                android:centerColor="#F29600"
                android:endColor="#F5AA1C"
                android:angle="270"
                />
            <stroke android:width="1dp" android:color="#FBB343" />
            <corners android:topLeftRadius="6dp" android:topRightRadius="6dp"
                     android:bottomRightRadius="6dp" android:bottomLeftRadius="6dp" />
        </shape>
    </item>

    <item>
        <shape>
           <gradient
                android:startColor="#FBB03A"
                android:centerColor="#FBB03B"
                android:endColor="#FBB03A"
                android:angle="270"
                />
            <stroke android:width="1dp" android:color="#FBB343" />
            <corners android:topLeftRadius="6dp" android:topRightRadius="6dp"
                     android:bottomRightRadius="6dp" android:bottomLeftRadius="6dp" />
        </shape>
    </item>

</selector>
在按钮中使用这个selector:
<Button
                android:id="@+id/button_delete"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="20dip"
                android:layout_marginLeft="10dip"
                android:layout_marginRight="10dip"
                android:layout_marginTop="20dip"
                android:background="@drawable/dialog_button_notice"
                android:padding="10dip"
                android:text="@string/detail_delete_camera"
                android:textColor="@color/notice_button_font_color"
                android:textSize="18sp"
                android:textStyle="normal" />
请大家帮我看看这个到底出了什么问题,不胜感激。
我也不知道,帮你顶一下吧吧

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧