今天写了一个关于label的显示窗口,代码量也挺简单的,大家一看就明白。不管在哪里我们做软件的都需要用到label

先让我们看一下图先。

package com.smart.widget;import android.content.Context;import android.util.AttributeSet;import android.view.LayoutInflater;import android.widget.LinearLayout;import android.widget.TextView;import com.smart.acitivy.R;public class LabelEdit extends LinearLayout{private TextView textView;private String labelText;private int labelFontSize;private String labelPosition;public LabelEdit(Context context, AttributeSet attrs){super(context, attrs);//  读取labelText属性的资源IDint resourceId = attrs.getAttributeResourceValue(null, "labelText", 0);//  未获得资源ID,继续读取属性值if (resourceId == 0)labelText = attrs.getAttributeValue(null, "labelText");//  从资源文件中获得labelText属性的值elselabelText = getResources().getString(resourceId);//  如果按两种方式都未获得labelTex属性的值,表示未设置该属性,抛出异常if (labelText == null){throw new RuntimeException("必须设置labelText属性.");}//  获得labelFontSize属性的资源IDresourceId = attrs.getAttributeResourceValue(null, "labelFontSize", 0);//  继续读取labelFontSize属性的值,如果未设置该属性,将属性值设为14if (resourceId == 0)labelFontSize = attrs.getAttributeIntValue(null, "labelFontSize",14);//  从资源文件中获得labelFontSize属性的值elselabelFontSize = getResources().getInteger(resourceId);//  获得labelPosition属性的资源IDresourceId = attrs.getAttributeResourceValue(null, "labelPosition", 0);//  继续读取labelPosition属性的值if (resourceId == 0)labelPosition = attrs.getAttributeValue(null, "labelPosition");//  从资源文件中获得labelPosition属性的值elselabelPosition = getResources().getString(resourceId);//  如果未设置labelPosition属性值,将该属性值设为leftif (labelPosition == null)labelPosition = "left";String infService = Context.LAYOUT_INFLATER_SERVICE;LayoutInflater li;//  获得LAYOUT_INFLATER_SERVICE服务li = (LayoutInflater) context.getSystemService(infService);LinearLayout linearLayout = null;//  根据labelPosition属性的值装载不同的布局文件if("left".equals(labelPosition))linearLayout = (LinearLayout)li.inflate(R.layout.labeledittext_horizontal, this);else if("top".equals(labelPosition))linearLayout = (LinearLayout)li.inflate(R.layout.labeledittext_vertical, this);elsethrow new RuntimeException("labelPosition属性的值只能是left或top.");//  下面的代码从相应的布局文件中获得了TextView对象,并根据LabelTextView的属性值设置TextView的属性textView = (TextView) findViewById(R.id.textview);textView.setTextSize((float)labelFontSize);textView.setTextSize(labelFontSize);textView.setText(labelText);}}

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  6. 一款霸榜 GitHub 的开源 Linux 资源监视器!
  7. 如何编译Android内核
  8. 反编译Android(安卓)apk文件
  9. android系统属性读写操作SystemProperties

随机推荐

  1. 痞子衡嵌入式:如果i.MX RT是一匹悍马,征服
  2. MySQL分库备份与分表备份
  3. 痞子衡嵌入式:开启NXP-MCUBootUtility工具
  4. 高可用数据库主从复制延时的解决
  5. 痞子衡嵌入式:开启NXP-MCUBootUtility工具
  6. mysql多实例介绍及配置
  7. 25个iptables常用示例
  8. HTTP状态码及说明
  9. Gitlab备份、迁移、恢复和升级
  10. 痞子衡嵌入式:恩智浦MCU安全加密启动一站