2
我试图通过Pedram从this答案实施更新的解决方案,但我不知道要创建一个新的实例CircleProgressBar
。它需要AttributeSet作为参数传递,但如何获取它?如何通过AttributeSet作为参数
CircleProgressBar circleProgressBar = new CircleProgressBar(MainActivity.this, ?);
我试图通过Pedram从this答案实施更新的解决方案,但我不知道要创建一个新的实例CircleProgressBar
。它需要AttributeSet作为参数传递,但如何获取它?如何通过AttributeSet作为参数
CircleProgressBar circleProgressBar = new CircleProgressBar(MainActivity.this, ?);
当一个视图被通过在XML定义的布局充气AttributeSet
构造被使用。如果你在代码中构造一个,你应该使用单参数构造函数(例如new CircleProgressBar(MainActivity.this)
)。如果单参数构造函数没有定义,你只需要添加它。如果你希望能够完全从Java代码中构建它,你只需要为属性添加一些getter/setter。
可替换地,只用一个单一的项目定义布局XML(例如名称view_progress_circle.xml):
<com.your.packagename.CircleProgressBar
android:layout_width="100dp"
android:layout_height="100dp"
// etc. add other attributes here
/>
然后,在代码,以创建:
CircleProgressBar bar = (CircleProgressBar) LayoutInflater.from(MainActivity.this)
.inflate(R.layout.view_progress_circle, parent, false):
其中parent
是ViewGroup
你将把视图附加到。