gpt4 book ai didi

android - 在正常状态下发生的按钮按下状态填充

转载 作者:行者123 更新时间:2023-11-29 14:50:37 26 4
gpt4 key购买 nike

我有一个正常状态下的 3d 外观按钮,右侧和底部有 3dp 填充,当我按下按钮时,我希望它看起来像 3d,这次左侧和顶部有 3dp 填充。但是,当我更改项目形状按下状态的填充值时,即使按钮处于正常状态/未按下,填充也会显示变化。

我的按钮是这样的:

enter image description here

我希望它在按下时看起来也像这样:

enter image description here

btn_gray1.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#acacac" />
<stroke
android:width="0dp"
android:color="#acacac" />
<corners
android:radius="0dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>

<solid android:color="#c2c2c2"/>
<stroke
android:width="0dp"
android:color="#c2c2c2" />
<corners
android:radius="0dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>

btn_gray2.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#acacac" />
<stroke
android:width="0dp"
android:color="#acacac" />
<corners
android:radius="0dp" />
<padding
android:left="0dp"
android:top="0dp"
android:right="3dp"
android:bottom="3dp" />
</shape>
</item>
<item>
<shape>

<solid android:color="#959595"/>
<stroke
android:width="0dp"
android:color="#959595" />
<corners
android:radius="0dp" />
<padding
android:left="0dp"
android:top="0dp"
android:right="3dp"
android:bottom="3dp" />
</shape>
</item>
</selector>

btn_gray.xml

  <?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_gray2"/>
<item android:drawable="@drawable/btn_gray1"/>
</layer-list>

最佳答案

这样做

你的 xml 布局中的按钮

<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TUTORIAL"
android:padding="5dp"
android:textColor="@android:color/white"
android:background="@drawable/button_selector" />

在 drawable 文件夹中创建一个选择器 xml按钮选择器.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/button_background_one"
android:state_pressed="true" />
<item android:drawable="@drawable/button_backgroun_two" />

</selector>

drawable 文件夹中的 button_background_one.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid
android:color="#959595" />
<stroke
android:width="0dp"
android:color="#959595" />
<corners
android:radius="0dp" />
<padding
android:left="3dp"
android:top="3dp"
android:right="0dp"
android:bottom="0dp" />
</shape>
</item>
<item>
<shape>

<solid android:color="#c2c2c2"/>
<stroke
android:width="0dp"
android:color="#c2c2c2" />
<corners
android:radius="0dp" />
<padding
android:left="3dp"
android:top="3dp"
android:right="0dp"
android:bottom="0dp" />
</shape>
</item>
</layer-list>

drawable文件夹中的button_backgroun_two.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid
android:color="#959595" />
<stroke
android:width="0dp"
android:color="#959595" />
<corners
android:radius="0dp" />
<padding
android:left="0dp"
android:top="0dp"
android:right="3dp"
android:bottom="3dp" />
</shape>
</item>
<item>
<shape>

<solid android:color="#c2c2c2"/>
<stroke
android:width="0dp"
android:color="#c2c2c2" />
<corners
android:radius="0dp" />
<padding
android:left="0dp"
android:top="0dp"
android:right="3dp"
android:bottom="3dp" />
</shape>
</item>
</layer-list>

这应该可以。试试吧

关于android - 在正常状态下发生的按钮按下状态填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19288883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com