android无法获取自定义控件的属性值?该如何解决
android无法获取自定义控件的属性值?
这是我的attrs.xml文件:
这是我的获取的代码:
这是使用的布局文件:
在代码中无法获取到值,因此只能向各位求助了!没多少分,希望各位帮帮忙看一下,谢谢了
------解决思路----------------------
不好意思,是我看错了
你第二个构造函数里用了
this(context, null, 0);
传入的AttributeSet=null
所以后面获取不到值啊
------解决思路----------------------
public CircleSeekView(Context context, AttributeSet attrs) {
this(context, null, 0);
}
改成
public CircleSeekView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
这是我的attrs.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="CircleSeekView">
<attr name="inner_radius" format="dimension" />
<attr name="border_width" format="dimension" />
<attr name="pointer_radius" format="dimension" />
<attr name="pointer_color" format="color" />
<attr name="border_color" format="color" />
<attr name="progress_color" format="color" />
<attr name="character_color" format="color" />
<attr name="btn_resource" format="reference" />
<attr name="value_min" format="integer" />
<attr name="value_max" format="integer" />
<attr name="value_default" format="integer" />
<attr name="angle_start" format="integer" />
</declare-styleable>
</resources>
这是我的获取的代码:
mInnerRadius = ta.getDimension(R.styleable.CircleSeekView_inner_radius, DEF_INNER_RADIUS);
Log.i(tag, "inner_radius:" + mInnerRadius);
mBorderWidth = ta.getDimension(R.styleable.CircleSeekView_border_width, DEF_BORDER_WIDTH);
mPointerRadius = ta.getDimension(R.styleable.CircleSeekView_pointer_radius, DEF_POINTER_RADIUS);
mMinValue = ta.getInteger(R.styleable.CircleSeekView_value_min, DEF_VALUE_MIN);
mMaxValue = ta.getInteger(R.styleable.CircleSeekView_value_max, DEF_VALUE_MAX);
Log.i(tag, "value_max:" + mMaxValue);
mDefaultValue = ta.getInteger(R.styleable.CircleSeekView_value_default, DEF_VALUE_DEFAULT);
mBorderColor = ta.getColor(R.styleable.CircleSeekView_border_color, DEF_BORDER_COLOR);
mPointerColor = ta.getColor(R.styleable.CircleSeekView_pointer_color, DEF_POINTER_COLOR);
mProgressColor = ta.getColor(R.styleable.CircleSeekView_progress_color, DEF_PROGRESS_COLOR);
这是使用的布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.chaolee.circleseekviewdemo"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/metronomebg"
android:gravity="center"
android:orientation="vertical" >
<com.chaolee.widgets.CircleSeekView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:inner_radius="250dip" />
</LinearLayout>
在代码中无法获取到值,因此只能向各位求助了!没多少分,希望各位帮帮忙看一下,谢谢了
------解决思路----------------------
不好意思,是我看错了
你第二个构造函数里用了
this(context, null, 0);
传入的AttributeSet=null
所以后面获取不到值啊
------解决思路----------------------
public CircleSeekView(Context context, AttributeSet attrs) {
this(context, null, 0);
}
改成
public CircleSeekView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}