Java 默认按钮';s方法
我想在点击按钮后获得类似于android默认设置的效果,但有自己的颜色 默认按钮为白色或浅灰色 当我触摸按钮时,颜色会改变一瞬间(橙色) 释放时,按钮颜色恢复为原始颜色(白色/浅灰色) 您正在使用哪种方法来达到此效果 我使用onTouchListener()设置触摸按钮的颜色 和OnClickListener()设置原始颜色 但当我滚动组按钮(内部滚动视图)时,当我触摸任何按钮时,颜色都会改变,但当释放按钮时,C的颜色不会改变回来。我应该使用哪种方法?我怎样才能解决这个问题 /////////////////// 我在值中创建了颜色,并定义了2种颜色Java 默认按钮';s方法,java,android,Java,Android,我想在点击按钮后获得类似于android默认设置的效果,但有自己的颜色 默认按钮为白色或浅灰色 当我触摸按钮时,颜色会改变一瞬间(橙色) 释放时,按钮颜色恢复为原始颜色(白色/浅灰色) 您正在使用哪种方法来达到此效果 我使用onTouchListener()设置触摸按钮的颜色 和OnClickListener()设置原始颜色 但当我滚动组按钮(内部滚动视图)时,当我触摸任何按钮时,颜色都会改变,但当释放按钮时,C的颜色不会改变回来。我应该使用哪种方法?我怎样才能解决这个问题 //////////
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="white">#ffffff</color>
<color name="blue">#004080</color>
</resources>
现在我的按钮没有背景,但我不知道为什么在xml中为您的按钮设置背景如下
android:background="?android:attr/selectableItemBackground"
这将自动处理android中默认的颜色变化
如果你想拥有自己的颜色,你需要做一个自定义选择器,并将其设置为你的背景。类似于以下的方法应该可以工作:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/list_selector_pressed" />
<item android:state_focused="true" android:drawable="@drawable/list_selector_focused" />
<item android:drawable="@color/selector_background" />
</selector>
您的drawable将如下所示:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/selector_background_pressed"/>
</shape>
不是100%确定,但您可能只能够在选择器中直接使用@color/my_color,而不是引用可绘制的。但这种方法肯定会起作用根据状态创建定义按钮状态和按钮颜色的xml文件,例如项目中res/color文件夹中的button_states.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@color/pressed_button_color"/>
<item android:state_selected="true"
android:drawable="@color/selected_button_color"/>
<item android:drawable="@color/default_button_color"/>
</selector>
我建议你在网上使用这个。您只需选择所需的颜色集,然后在下载资源后,将主题分别放在您的项目资源文件夹中,然后在清单文件中将主题应用于您的应用程序,并使用您在此在线工具上设置的名称(“主题名”默认为AppTheme)
hmm,我有一个错误,但它期望11层api或更高,我必须使用api 8创建一个自定义选择器,就像我发布的那样,应该适合您我创建了选择器,但它不工作,我在我的主题中解释了创建您的选择器,就像我在示例中所做的那样。你需要像我做的那样,为你的紧逼状态准备一个牵引装置。你的草稿需要在RES/DABLE文件夹中,如<代码> @可绘制/文件名< /代码>。这是因为在ButoNoSt.xml中使用了不同的选择器项,所以我尝试将下列项添加到选择器元素:这对我起作用,所以你应该考虑添加默认和StisteEnter ItySyeEP,它现在工作得很好,这是一个非常有用的解决方案。谢谢
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/selector_background_pressed"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@color/pressed_button_color"/>
<item android:state_selected="true"
android:drawable="@color/selected_button_color"/>
<item android:drawable="@color/default_button_color"/>
</selector>
android:background="@color/button_states"
<application android:debuggable="true" android:label="@string/app_name"android:theme="@style/AppTheme">