package cn.flightfeather.thirdappmodule.view;
|
|
import android.content.Context;
|
import android.content.res.TypedArray;
|
import android.graphics.drawable.Drawable;
|
import android.util.AttributeSet;
|
import android.view.View;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.RelativeLayout;
|
import android.widget.TextView;
|
import cn.flightfeather.thirdappmodule.R;
|
|
|
|
|
/**
|
* 加载当前这个组合控件的布局文件
|
* <p>
|
* 加载自定义属性和组合控件中的元素进行绑定
|
*/
|
|
public class SettingCommItemView extends RelativeLayout {
|
|
private FrameLayout leftContainer;
|
private TextView leftTextView;
|
private View divider;
|
|
public SettingCommItemView(Context context) {
|
super(context);
|
}
|
|
public SettingCommItemView(Context context, AttributeSet attrs) {
|
super(context, attrs);
|
|
// 加载当前这个组合控件的布局文件
|
View.inflate(context, R.layout.setting_item, this);
|
|
|
// 获取当前组合控件中所有的元素
|
leftContainer = (FrameLayout) findViewById(R.id.left_container);
|
leftTextView = (TextView) findViewById(R.id.left_text);
|
divider = findViewById(R.id.divider);
|
|
|
// 加载自定义属性
|
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SettingCommItemView);
|
|
// 获取自定义属性的值
|
String leftText = a.getString(R.styleable.SettingCommItemView_item_text);
|
float leftTextSize = a.getDimension(R.styleable.SettingCommItemView_item_text_size, 18);
|
int leftTextColor = a.getColor(R.styleable.SettingCommItemView_item_text_color, 0xff000000);
|
|
Drawable lDrawable = a.getDrawable(R.styleable.SettingCommItemView_img_src);
|
|
boolean flag = a.getBoolean(R.styleable.SettingCommItemView_is_divider_visibility, false);
|
|
|
// 将组合控件中元素和自定义的属性值进行绑定
|
leftTextView.setText(leftText);
|
|
leftTextView.setTextSize(leftTextSize);
|
|
leftTextView.setTextColor(leftTextColor);
|
|
divider.setVisibility(flag ? VISIBLE : GONE);
|
|
ImageView view;
|
if (lDrawable != null) {
|
view = new ImageView(context);
|
view.setImageDrawable(lDrawable);
|
leftContainer.addView(view);
|
}
|
|
}
|
|
private void clearLeftView() {
|
if (leftContainer.getChildCount() > 0) {
|
leftContainer.removeAllViews();
|
}
|
}
|
|
|
|
public void setLeftView(View v) {
|
clearLeftView();
|
leftContainer.addView(v);
|
}
|
|
|
|
public void setLeftText(CharSequence text) {
|
leftTextView.setText(text);
|
}
|
|
public void setLeftTextColor(int color) {
|
leftTextView.setTextColor(color);
|
}
|
|
public void setDividerVisibility(boolean visibility) {
|
divider.setVisibility(visibility ? VISIBLE : INVISIBLE);
|
}
|
}
|