自定义View 3个步骤
1.自定义属性
2.继承一个View
3.绑定属性
public class MyToolbar extends LinearLayout{
private Context context;
private TextView tvTitle;
private ImageView imgFinish;
public MyToolbar(Context context) {
this(context, null);
}
public MyToolbar(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
LayoutInflater.from(context).inflate(R.layout.mytoolbar, this, true);
initView();
addXmlAttrs(context, attrs);
}
private void initView() {
imgFinish = (ImageView)findViewById(R.id.iv_img_finish);
tvTitle = (TextView)findViewById(R.id.tv_title);
imgFinish.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Activity activity = (Activity)context;
activity.finish();
}
});
}
private void addXmlAttrs(Context context, AttributeSet attrs) {
if(null != attrs) {
TypedArray typeArray = context.obtainStyledAttributes(attrs, R.styleable.toolbar);
CharSequence text = typeArray.getText(R.styleable.toolbar_title);
if (text != null) tvTitle.setText(text);
typeArray.recycle();
}
}
public void setTitle(String title) {
tvTitle.setText(title);
}
}
values 内属性定义
<resources>
<declare-styleable name="toolbar">
<attr name="title" format="string"/>
</declare-styleable>
</resources>
xml内引用
<com.szltoy.detection.view.MyToolbar
android:layout_width="match_parent"
android:layout_height="44dp"
app:title="历检"/>