我有一个线性布局,并在其上实现了一个onClickListener。现在我希望当它被点击时它的背景颜色变为白色并保持这种状态直到点击其他东西。单击其他内容时,我希望它具有透明背景如何做到这一点?提前致谢 最佳答案 在您的可绘制文件夹中创建两个可绘制图像。单击它时,您可以更改布局的背景。以下代码更改背景:LinearLayoutlayout=(LinearLayout)findViewById(R.id.linearlayout);layout.setBackgroundResource(getResources().getDrawa
似乎StateListDrawable将忽略应用于它们包含的可绘制对象的颜色过滤器。例如:StateListDrawablesld=newStateListDrawable();DrawablepressedState=Context.getResources().getDrawable(R.drawable.solid_green);pressedState.setColorFilter(Color.RED,PorterDuff.Mode.SRC);sld.addState(newint[]{android.R.attr.state_pressed},pressedState);//
我正在尝试使用setColorFilter为图形着色。以下代码似乎在Lollipop上运行良好,但似乎对kitkat没有影响,图标以其原始颜色呈现:Drawableicon=ContextCompat.getDrawable(context,R.drawable.ic_chat_button).mutate();icon.setColorFilter(context.getResources().getColor(R.color.control_tint_color),PorterDuff.Mode.SRC_ATOP);icon.invalidateSelf();mutate和inva
是否可以扩展以XML创建的选择器以供StateListDrawable以编程方式使用?我发现StateListDrawable有一个inflate方法,但是我没有找到使用示例。最好避免这样做:StateListDrawablestates=newStateListDrawable();states.addState(newint[]{android.R.attr.state_pressed},getResources().getDrawable(R.drawable.pressed));states.addState(newint[]{android.R.attr.state_focu
我正在开发一款在大型设备上使用双Pane布局的应用程序,类似于详细说明here.布局概要;一个Pane包含选项列表,而另一个Pane将显示有关从另一个Pane中选择的选项的详细信息。现在选择选项时,选择其他元素(按钮,复选框等)时会看到链式react,但是在动画完成元素后,该元素返回到先前的颜色。我想在动画完成后保留涟漪中的高光,但我不知道如何实现这一点。这是我的波纹背景目前的样子。focus选择器不执行任何操作-无法弄清楚如何实际为元素提供焦点。我也尝试过使用selected选择器,但那会立即发生,覆盖了波纹。重申一下,我的问题是:是否有可能同时产生涟漪效应和突出显示的选择,如果是的
从修订版12更新到SDK工具修订版15后,我的EditTexts和Buttons都像这样扭曲了......这是修订版的错误吗?因为当我使用“图形布局”选项卡预览布局时,它看起来很正常。但是一编译出来放到我的手机或者模拟器上,就乱码了。这是按钮的StateListDrawablexml。这里引用的每个可绘制对象都是一个9patch。EditText以相同的方式完成。 最佳答案 我在更新到SDK14时也遇到过这个问题。我在Window>Preferences>Android>Build中找到了解决方案,方法是在Normal上设置“Bui
当我尝试使用StateListDrawable时,我有一个很奇怪的现象:我有一个扩展ImageView的View,我在其构造函数中使用了StateListDrawable。我有2个代码fragment来展示我的问题。第一个:publicclassMyViewextendsImageView{Resourcesr=getResources();DrawablefilteredDrawable=r.getDrawable(R.drawable.smallsale);filteredDrawable.setColorFilter(newLightingColorFilter(Color.RE
我想在按下时更改可绘制对象的alpha值。因此,我创建了两个可绘制对象并将它们放在一个StateListDrawable中,并为按下状态设置了alpha值。但它就是行不通。StateListDrawablecontent=newStateListDrawable();DrawablecontentSelected=this.getResources().getDrawable(R.drawable.content_background);contentSelected.mutate().setAlpha(100);DrawablecontentNormal=this.getResour
我有一个ToggleButton。我希望背景清晰,就像在一周中的几天的默认闹钟应用程序中一样。下面的代码用清晰的颜色覆盖了切换。有没有办法在不滚动我自己的切换按钮的情况下保持切换并更改背景颜色?如果没有,那整个过程都会很糟糕,imo。另外,我真的必须在这里定义清晰的颜色,还是可以在我的xml中使用内置的清晰颜色?这是我的colors.xml#ffffff00这是我在drawable文件夹中的颜色状态列表xml。 最佳答案 Iwantthebackgroundtobeclear..透明?是的,android确实为此定义了颜色。您可以通
我在res/drawable/my_background.xml中定义了一个drawable。my_background.xml是:然后我将my_background设置为可在View上绘制并且效果很好。但是我需要从我的java代码更改存储在我的选择器中的layerList中的颜色元素的值。我该怎么做?我可以在我的View上调用getBackground(),然后获取StateListDrawable,但我找不到任何方法从StateListDrawable获取可绘制子级。 最佳答案 ...butIcan'tfindanymethod