我正在写一个Android应用程序,现在我正在设计它。我使用的是Theme.Holo.Light
的孩子的自定义主题。我非常喜欢Theme.Holo.Light
因为它的按钮在您单击并按住它时会产生特殊效果。就像下图中的下方按钮一样:
上方按钮已更改颜色。现在,当我点击该按钮时,它没有那种效果。我真的不明白为什么。任何人都可以告诉我为什么会这样,我怎样才能用彩色按钮获得同样的效果?
而且,彩色按钮看起来更胖。
答案 0 :(得分:1)
这就是材料设计的“涟漪效应”。
您已经为这种效果定义了自己的风格。
下面的链接可以帮助您或者您可以在StackOverflow上搜索许多其他答案。
Material effect on button with background color
答案 1 :(得分:1)
这是因为按钮使用选择器根据点击状态显示不同的颜色/效果/绘图。您可以查看Color State List Resource上的链接。
要创建自己的文件,您必须创建一个slecetor cml文件并将其放在drawables文件夹中。
例如。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_btn_default_normal_gray" android:state_enabled="true" android:state_pressed="false"/>
<item android:drawable="@drawable/shape_btn_default_pressed_gray" android:state_pressed="true"/>
<item android:drawable="@drawable/shape_btn_default_disabled_gray"/>
</selector>
或带颜色
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/dark_green" android:state_enabled="true" android:state_pressed="false"/>
<item android:drawable="@color/light_green" android:state_pressed="true"/>
<item android:drawable="@color/gray"/>
</selector>
要应用此功能,您必须在布局xml中设置背景drawable,如下所示。
<Button
android:id="@+id/my_btn"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Some text"
android:background="@drawable/selector_btn_default_gray"/>
答案 2 :(得分:1)
点击(在你的第二张图片中)按钮显示与上面相同的比例时,它不会失去你的行为......所以默认情况下,背景设置为显示它是button
(与padding
左右相似),可以更改为显示oncklick
效果...
因此,当您将所需背景设置为按钮时...它会对当前所处的内容进行完全更改,然后您必须手动设置onclick
效果..