自定义控件之带标签的文本编辑框(不带命名空间)

来源:互联网 发布:淘宝网店铺介绍范文 编辑:程序博客网 时间:2024/05/09 12:29
package com.myself.custom.view;import android.content.Context;import android.util.AttributeSet;import android.view.LayoutInflater;import android.widget.LinearLayout;import android.widget.TextView;import com.myself.custom.activity.R;/** * @文件名 LableEditText.java * @类说明 (自定义文本编辑组合控件) * @作者 xxxx * @版本 v_1.0 * @创建时间 2014-3-19 上午10:56:24 */public class LableEditText extends LinearLayout {private TextView textView;private String lableText;private int labelFontSize;private String lablePosition;public LableEditText(Context context, AttributeSet attrs) {super(context, attrs);//获得属性为lableText的资源ID,默认资源ID为0int resourceId = attrs.getAttributeResourceValue(null, "lableText", 0);if(resourceId == 0){//表示 lableText 是字符串不是资源IDlableText = attrs.getAttributeValue(null, "lableText");}else{//表示lableText 是资源ID不是字符串//获取资源文件中值lableText = getResources().getString(resourceId);}//如果lableText属性没有设置,则抛出异常if(lableText == null){throw new NullPointerException("lableText必须设置属性值");}resourceId = attrs.getAttributeResourceValue(null, "labelFontSize", 0);if(resourceId == 0){labelFontSize = attrs.getAttributeIntValue(null, "labelFontSize", 0);}else{labelFontSize = getResources().getInteger(labelFontSize);}if(labelFontSize == 0){throw new IllegalArgumentException("labelFontSize 必须的值必须大于0");}resourceId = attrs.getAttributeResourceValue(null, "lablePosition", 0);if(resourceId == 0){lablePosition = attrs.getAttributeValue(null, "lablePosition");}else{lablePosition = getResources().getString(resourceId);}System.out.println("lablePosition---" + lablePosition);LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);if("horizontal".equals(lablePosition)){inflater.inflate(R.layout.textview_horizontal_layout,this);}else if("vertical".equals(lablePosition)){inflater.inflate(R.layout.textview_vertical_layout,this);}else{throw new IllegalArgumentException("lablePosition 的值只有 horizontal、vertical两种");}textView = (TextView)findViewById(R.id.lableText_text);textView.setText(lableText);textView.setTextSize(labelFontSize);}}

0 0