<?xml version="1.0" encoding="utf-8"?> <resources> <item name="tv_title_name" type="id"/> <item name="tv_left_text" type="id"/> <item name="iv_left_image" type="id"/> <item name="iv_right_image" type="id"/> <item name="iv_right_image_two" type="id"/> <item name="tv_right_text" type="id"/> <item name="tv_right_text_two" type="id"/> </resources>
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- 标题属性 --> <declare-styleable name="TitleAttr"> <attr name="title_name" format="reference|string"/> <attr name="title_text_color" format="reference|color"/> <attr name="title_drawable_right" format="reference"/> <attr name="title_drawable_left" format="reference"/> <attr name="title_text_size" format="reference|dimension"/> <attr name="left_text" format="reference|string"/> <attr name="left_image" format="reference"/> <attr name="small_text_size" format="reference|dimension"/> <attr name="title_gravity"> <enum name="left" value="3"/> <enum name="center" value="17"/> <enum name="right" value="5"/> </attr> <attr name="right_image" format="reference"/> <attr name="right_text" format="reference|string"/> <attr name="right_image_two" format="reference"/> <attr name="right_text_two" format="reference|string"/> <attr name="title_height" format="dimension"/> <attr name="right_text_drawable_right" format="reference"/> <attr name="right_text_drawable_left" format="reference"/> <attr name="right_text_two_drawable_right" format="reference"/> <attr name="right_text_two_drawable_left" format="reference"/> <attr name="left_text_drawable_right" format="reference"/> <attr name="left_text_drawable_left" format="reference"/> </declare-styleable> </resources>
<com.jarek.library.TitleView android:id="@+id/title_main" android:layout_width="match_parent" android:background="#0093fe" title:title_name="标题" title:right_text="@string/more" title:title_text_color="@android:color/white" title:right_image_two="@mipmap/icon_crop_rotate" title:title_text_size="20sp" title:small_text_size="15sp" title:left_text="返回" title:left_text_drawable_left="@mipmap/back_normal" title:right_text_drawable_right="@mipmap/bar_button_right" android:layout_height="50dp"/>
TypedArray typeArray = context.obtainStyledAttributes(attrs, R.styleable.TitleAttr);
int leftText = typeArray.getResourceId(R.styleable.TitleAttr_left_text, 0); CharSequence charSequence = leftText > 0 ? typeArray.getResources().getText(leftText) : typeArray.getString(R.styleable.TitleAttr_left_text);
/**
* layout params of RelativeLayout
* @return LayoutParams
*/
private LayoutParams initLayoutParams () {
return new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
}
LayoutParams params = initLayoutParams();
/**
* create TextView
* @param context Context
* @param id the id of TextView
* @param charSequence text to show
* @param params relative params
* @return the TextView which is inited
*/
@NonNull
private TextView createTextView(Context context, int id, CharSequence charSequence, LayoutParams params) {
TextView textView = new TextView(context);
textView.setLayoutParams(params);
textView.setGravity(Gravity.CENTER);
textView.setId(id);
textView.setMinWidth((int)getPixelSizeByDp(minViewWidth));
textView.setText(charSequence);
return textView;
}
/**
* drawable of TextView
* @param typeArray TypedArray
* @param leftDrawableStyleable leftDrawableStyleable
* @param rightDrawableStyleable rightDrawableStyleable
* @param textView which TextView to set
*/
private void setTextViewDrawable(TypedArray typeArray, int leftDrawableStyleable, int rightDrawableStyleable, TextView textView) {
int leftDrawable = typeArray.getResourceId(leftDrawableStyleable, 0);
int rightDrawable = typeArray.getResourceId(rightDrawableStyleable, 0);
textView.setCompoundDrawablePadding((int)getPixelSizeByDp(drawablePadding));
textView.setCompoundDrawablesWithIntrinsicBounds(leftDrawable, 0, rightDrawable, 0);
}
setTextViewDrawable(typeArray, R.styleable.TitleAttr_left_text_drawable_left, R.styleable.TitleAttr_left_text_drawable_right, mLeftBackTextTv);
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
/**
* get the dimension pixel size from typeArray which is defined in attr
* @param typeArray TypedArray
* @param stylable stylable
* @param defaultSize defaultSize
* @return the dimension pixel size
*/
private float getDimensionPixelSize(TypedArray typeArray, int stylable, int defaultSize) {
int sizeStyleable = typeArray.getResourceId(stylable, 0);
return sizeStyleable > 0 ? typeArray.getResources().getDimensionPixelSize(sizeStyleable) : typeArray.getDimensionPixelSize(stylable, (int)getPiselSizeBySp(defaultSize));
}
float textSize = getDimensionPixelSize(typeArray, R.styleable.TitleAttr_small_text_size, defaultSmallTextSize); mLeftBackTextTv.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
/**
* get textColor
* @param typeArray TypedArray
* @return textColor
*/
private int getTextColorFromAttr (TypedArray typeArray) {
int textColorStyleable = typeArray.getResourceId(R.styleable.TitleAttr_title_text_color, 0);
if (textColorStyleable > 0) {
return typeArray.getResources().getColor(textColorStyleable);
} else {
return typeArray.getColor(R.styleable.TitleAttr_title_text_color, textColor);
}
}
mLeftBackTextTv.setTextColor(getTextColorFromAttr(typeArray));
mLeftBackTextTv.setTextColor(getTextColorFromAttr(typeArray));
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有