Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 默认按钮';s方法_Java_Android - Fatal编程技术网

Java 默认按钮';s方法

Java 默认按钮';s方法,java,android,Java,Android,我想在点击按钮后获得类似于android默认设置的效果,但有自己的颜色 默认按钮为白色或浅灰色 当我触摸按钮时,颜色会改变一瞬间(橙色) 释放时,按钮颜色恢复为原始颜色(白色/浅灰色) 您正在使用哪种方法来达到此效果 我使用onTouchListener()设置触摸按钮的颜色 和OnClickListener()设置原始颜色 但当我滚动组按钮(内部滚动视图)时,当我触摸任何按钮时,颜色都会改变,但当释放按钮时,C的颜色不会改变回来。我应该使用哪种方法?我怎样才能解决这个问题 //////////

我想在点击按钮后获得类似于android默认设置的效果,但有自己的颜色

默认按钮为白色或浅灰色 当我触摸按钮时,颜色会改变一瞬间(橙色) 释放时,按钮颜色恢复为原始颜色(白色/浅灰色)

您正在使用哪种方法来达到此效果

我使用onTouchListener()设置触摸按钮的颜色 和OnClickListener()设置原始颜色

但当我滚动组按钮(内部滚动视图)时,当我触摸任何按钮时,颜色都会改变,但当释放按钮时,C的颜色不会改变回来。我应该使用哪种方法?我怎样才能解决这个问题

/////////////////// 我在值中创建了颜色,并定义了2种颜色

<?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">