通过GradientDrawable设置或修改view background
2017-01-13 14:21
190 查看
项目中遇到根据后台数据修改view背景色的要求。通过setBackground(color),虽然改变了颜色,但是也改变了圆角属性。
这里可以通过使用GradientDrawable来修改已经设置的shape中的颜色来达到目的。
比如,上图中TextView通过设置background实现上面左上、右下圆角的效果:
bg_text.xml中代码:
然后,在JAVA代码获取view的背景,然后再修改背景的颜色,便能实现只替换颜色。
同样,也可以直接在JAVA代码中直接设置背景
这里可以通过使用GradientDrawable来修改已经设置的shape中的颜色来达到目的。
比如,上图中TextView通过设置background实现上面左上、右下圆角的效果:
<TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="4dp" android:paddingTop="4dp" android:paddingRight="8dp" android:paddingLeft="8dp" android:background="@drawable/bg_text" android:text="理财" android:textSize="14sp" android:textColor="#ffffff"/>
bg_text.xml中代码:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/red_f3323b"/> <corners android:bottomLeftRadius="0dp" android:bottomRightRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="0dp"/> </shape>
然后,在JAVA代码获取view的背景,然后再修改背景的颜色,便能实现只替换颜色。
GradientDrawable gd = (GradientDrawable)textview.getBackground(); gd.setColor("#679432"); holdView.typeTv.setBackground(gd);
同样,也可以直接在JAVA代码中直接设置背景
int roundRadius = 15; int fillColor = Color.parseColor("#679432"); GradientDrawable gd = new GradientDrawable(); drawable gd.setColor(fillColor); gd.setCornerRadius(roundRadius); //或者使用gd.setCornerRadii(new float[]{15,15,15,15,15,15,15,15}) textview.setBackground(gd);
相关文章推荐
- Android:Textview 通过代码设置 Drawable
- Android中EditView TextView (padding失效)使用setBackgroundDrawable或setBackgroundResource则xml中设置的 Padding失效
- 如何给TextView 中通过drawable放图片 修改图片大小
- GradientDrawable 可以用来通过程序方式给控件设置背景如圆角,边框等
- android background设置颜色后就成textview了
- 通过注册表修改Win7下远程桌面端口3389的设置方法
- Flex中通过设置opaqueBackground属性给RadioButton控件设置不透明的背景颜色的例子
- 通过网页修改activex安全设置,添加信任站点,禁用弹出窗口阻止程序
- Flex中如何通过backgroundImage和backgroundSize样式,设置VBox容器的背景图片以及大小
- 通过网页修改activex安全设置,添加信任站点,禁用弹出窗口阻止程序
- 通过代码修改TextView的宽度
- 通过网页修改activex安全设置,添加信任站点,禁用弹出窗口阻止程序
- ImageView 通过layout设置位置后触发事件后 回到原位置
- win7中如何通过修改注册表设置默认浏览器
- 通过注册表来设置修改默认浏览器的方法
- 通过网页修改activex安全设置,添加信任站点,禁用弹出窗口阻止程序
- Flex中如何通过设置backgroundAlpha风格来设定VideoDisplay控件的背景透明度(background alpha)的例子
- 当DataGridView控件通过代码在运行时设置了数据源,如何在运行时修改DataGridView控件的列
- 通过修改grub设置Linux和Windows等多个系统的启动顺序变更和删除
- Iphone通过viewDidLoad设置拉伸图像与按钮样式