GradientDrawable的使用(shape)

来源:互联网 发布:网络日语翻译兼职 编辑:程序博客网 时间:2024/05/16 04:03

看到别人的博客中说明:GradientDrawable的使用有多种方式。


首先GradientDrawable就当作drawable来使用,可以用来设置背景


常用方式:

xml的实现:使用shape,这个我们经常使用

但是如果我们要在操作按钮的时候改变背景shape的某个属性的时候怎么办,以前都是写了多个shape,现在可以使用GradientDrawable来直接操作属性或者动态创建一个


1:直接操作:

就是获取我们为view设置的shape背景,然后操作属性。如下:

TextView tv = (TextView) findViewById(R.id.tv_round_rect);final GradientDrawable drawable = (GradientDrawable) tv.getBackground().mutate();tv.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View v) {        drawable.setStroke(2,Color.RED);    }});
我为这个textView设置了shape的背景,在这里通过getBackgroud()方法获取到背景转换为GradientDrawable,然后可以使用这个drawable来设置属性

这里使用了getBackgroud().mutate()方法,原因可以参考https://dreammushroomsprogramnotes.blogspot.hk/2015/10/android-gradientdrawable-mutate.html,我没有去验证


2:动态创建:

GradientDrawable drawable = new GradientDrawable();drawable.setCornerRadius(10);drawable.setStroke(2,Color.BLUE);tv.setBackgroundDrawable(drawable);

就是动态创建一个GradientDrawable来作为textView的背景

参考博文:http://kaywu.xyz/2016/08/28/Shape-Drawable/





0 0
原创粉丝点击