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

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为0
		int resourceId = attrs.getAttributeResourceValue(null, "lableText", 0);
		if(resourceId == 0){
			//表示 lableText 是字符串不是资源ID
			lableText = 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值