我开发了一个扩展View
类的自定义视图:
public class ScRectangle extends View implements Parcelable{ ... }
我也创建了以下Drawable:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid
android:color="@android:color/transparent" />
<corners
android:radius="@dimen/thickBorder" />
<stroke android:width="@dimen/thickBorder"
android:color="@color/fab_color_normal" />
然后我尝试将此drawable作为背景应用于上述自定义视图的新实例:
ScRectangle r = new ScRectangle(this, left, top, right, bottom, "thinBorder", "OrangeState", 0);
r.setBackground(ContextCompat.getDrawable(mContext, R.drawable.selected_state));
drawingFrame.addView(r);
r
是drawingFrame
中唯一的观点。上面的代码正确地在框架内,正确的位置和正确的大小上添加了预期的矩形。但是,drawable似乎适用于drawingFrame
而不是r
。
*****编辑*****
在下图中,r
是D5中的浅橙色方形,而drawable是整个网格的深橙色边框。
应如何更改上述代码?
答案 0 :(得分:0)
覆盖
自定义类中的setBackground方法,并将背景设置为当前视图