Drawable
Shape标签与ShapeDrawable
首先明确一点的是:shape标签对应的java类是GradientDrawable,而不是ShapeDrawable;
ShapeDrawable drawable = (ShapeDrawable) ((TextView) findViewById(R.id.tv)).getBackground();
将报:
public GradientDrawable(Orientation orientation, @ColorInt int[] colors)
从构造函数可以看出GradientDrawable完成的是gradient标签的功能,并不能完成shape标签所能完成的构造函数矩形、椭圆等功能;神奇的是:ShapeDrawable能完成shape的标签的所有功能;
shape标签一般是通过控件的android:background属性引入的,在代码中通过控件view.getBackground()得到shape标签的实例即GradientDrawable,然后完成比如;设置圆角等功能
shape标签对应的标签以及标签属性:
左边为Shape标签自