我知道这可能是一个非常简单的答案,但我在这里有点难过。我正在Panel
使用以下构造函数创建一个自定义视图:
public Panel(Context context, AttributeSet attrs, int barLength){
super(context, attrs);
//paint object for drawing in onDraw
barPaint = new Paint();
bar = new Rect(3, 13, barLength, 3); // Rect object
//...other stuff, etc etc
}
在将使用此视图的活动中,它将在表格布局的不同单元格中创建五次不同的时间。Panel
是一个非常简单Rect
的,其长度会根据参数而变化barLength
。
因此,在Panel
实际创建视图的活动中,它们的调用方式如下:
private Panel tagBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tagBar = (Panel) findViewById(R.id.custView);
}
如您所知,这不使用我上面概述的构造函数。如何实例化一个新的Panel
,包括正确地传递它Context
和AttributeSet
?现在看来,当构造(不int barLength
作为参数)时,它们只是自动传入。应该如何tagBar
实例化以正确传递所有三个参数?
澄清一下,attrs.xml 是一个styleable
属性文件,主要用于帮助从 xml 设置条的颜色。任何人都可以给我任何方向吗?
谢谢!