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);
}
}
自定义控件之带标签的文本编辑框(不带命名空间)
最新推荐文章于 2024-04-24 14:46:15 发布