扫码关注官方订阅号
1.这是个xml样式文件:
2.在searchView使用该样式
3.需求呢,现在是这个描边颜色需要在代码中控制,也就是动态的改变样式颜色,color.xml中没有该颜色,也不是用主题来改变
4.求助……
通过 searchView.getBackground() 获取一个 GradientDrawable 对象(如果该 View 设置的是 Shape 背景的话)。
searchView.getBackground()
然后通过 drawable.setStroke(1, Color.RED) 动态设置描边就可以了。第一个参数 1 代表是的宽度,第二个是颜色。
drawable.setStroke(1, Color.RED)
Drawable background = imageView.getBackground(); if (background instanceof ShapeDrawable) { ((ShapeDrawable)background).getPaint().setColor(ContextCompat.getColor(mContext,R.color.colorToSet)); } else if (background instanceof GradientDrawable) { ((GradientDrawable)background).setColor(ContextCompat.getColor(mContext,R.color.colorToSet)); } else if (background instanceof ColorDrawable) { ((ColorDrawable)background).setColor(ContextCompat.getColor(mContext,R.color.colorToSet)); }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
通过
searchView.getBackground()获取一个 GradientDrawable 对象(如果该 View 设置的是 Shape 背景的话)。然后通过
drawable.setStroke(1, Color.RED)动态设置描边就可以了。第一个参数 1 代表是的宽度,第二个是颜色。