我在我的应用程序中有几个图像按钮,我已经删除了默认的灰色背景
android:background=“@android:color/transparent”
或 android:background=“@null”
问题是,它还删除了onClick高亮背景(API8中的橙色和API16中的蓝色)
我读了很多Q
解决方案:以编程方式
import android.view.View; import android.view.View.OnTouchListener; // ... btn.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == (MotionEvent.ACTION_DOWN)) { // set background highlight color btn.setBackgroundResource(R.color.blue); } if(event.getAction() == (MotionEvent.ACTION_UP)) { // restore transparent btn.setBackgroundResource( getResources().getColor(android.R.color.transparent)); } return false; } });
它并没有那么简单,但它确实完成了这项工作,并为我节省了很多时间,为每个按钮制作另一个图像,而我并不真正需要花哨的点击样式。
不要这么认为,你可以通过API搜索来找到ImageButton的预定义选择器,而不是复制代码并根据需要更改选择器。因此,您将创建自定义的 ImageButton。
但我不认为有一个简单的方法,就像你想要的那样,只需改变颜色
你真的需要为此使用一个选择器。
您可以在选择器中为背景使用颜色,它不需要是PNG资源(只需将背景设置为颜色,而不是可绘制资源)。
您将使用此代码放在具有特定名称(如button_sel.xml)的可绘制文件夹中。
然后,您将此设置为 XML 中按钮的背景,如下所示:
android:background="@drawable/button_sel"
选择器看起来像这样:
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@color/ab_background"
android:state_focused="true"
android:state_pressed="true"/>
<item
android:drawable="@color/ab_background"
android:state_focused="false"
android:state_pressed="true"/>
<item
android:drawable="@color/ab_background_on"
android:state_focused="true"
android:state_pressed="false"/>
<item
android:drawable="@color/ab_background_on"
android:state_focused="false"
android:state_pressed="false"/>
</selector>
在这种情况下只有两个相关的属性- background
和< code>src。如果你想对所有的图像按钮使用相同的背景(带颜色高亮),你需要把从一个按钮到另一个按钮变化的那部分背景添加到你的由< code>src设置的图像中,这不是太干净整洁(当然如果你愿意也可以这么做)。
因此,我认为这里最好的方法是使用选择器作为背景,正如许多用户所建议的那样。
使用以下代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/holo_blue_light" android:state_pressed="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>
问题内容: 对于字符串,我需要它成为。 使用此正则表达式str.replaceAll(“(\ s | \ n)”,“”); 我可以得到“ abc123xyz”,但是如何在两者之间获得空格。 问题答案: 您不必使用正则表达式;您可以使用和代替。 这将为您提供您要查找的字符串。
我有一个简单的数据库表 我想删除所有按fv和sv分组的重复行。这已经是一个相当流行的问题,有很好的答案。但我需要改变这种情况。当rel\u id为NULL时,我想保留该行。在任何其他情况下,任何事情都会发生。 所以通过使用以下值 任何一个 或 将是有效的结果。其中为 不会。因为第一个条目有作为,它在之上担任主席。 我目前有这个(这是关于基本重复问题的答案)作为删除重复项的查询,但我不确定如何继续修
问题内容: 我有一条通用规则,该规则为所有DIV提供背景图像。 我有一个div(id =’a’),但我不希望它具有背景图像。 我必须给它什么CSS规则? 问题答案: 尝试:
问题内容: 我正在使用Android手机作为主要处理器并使用摄像头检测运动的机器人项目。我从OpenCV获得了Android二进制包并正确安装它。我可以使用OpenCV本机相机捕获图像并将其显示在屏幕上。我在使用背景减法类时遇到问题。我可以在构造函数中创建一个新的BackgroundSubtractorMOG对象,但是当我尝试运行下面的代码时,它强制退出了,我从本地代码中收到错误“ Backgro
问题内容: 问题是这样的:我有一个像这样的XML片段: 为了得到结果,我想删除所有-和-Tags,但保留它们的(文本)内容和子节点不变。另外,-Element应该保持不变。结果应该这样 目前,我将回到一个非常肮脏的把戏:我将etree.tostring这个片段,通过正则表达式删除有问题的标签,并用etree.fromstring结果替换原始片段(不是真正的代码,但是应该这样): 我知道我可能可以使