自定义属性多种format的取值方法

也许火星了

在自定义控件时有时会支持多种类型format,那么我们要怎么取值呢?

有什么方法能判断此时调用TypedArray#getFloat还是TypedArray#getDimensionPixelOffset吗?因为在xml中传入的类型我们并不知道,贸然取值程序会报错,下面贴上正确姿势:

TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CompatTextView);

TypedValue value = new TypedValue();
boolean has = array.getValue(R.styleable.CompatTextView_ctv_drawableWidth, value);
if (has) {
    if (value.type == TypedValue.TYPE_FLOAT) {
        //浮点类型

    } else if (value.type == TypedValue.TYPE_DIMENSION) {
        //Dimen类型
    }
} else {
    //未传入
}

array.recycle();

说:“必有童女怀孕生子;人要称他的名为以马内利。”(以马内利翻出来就是“ 神与我们同在”。) (马太福音 1:23 和合本)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android中View自定义XML属性详解以及R.attr与R.styleable的区别 Android中的各种...
    毹毹阅读 7,843评论 0 11
  • 赏析:南子的诗 《望思》 隔窗东眺日头红, 目障楼宇中。 几株房前杨柳, 萧瑟凋零枝叶空。 乡愁袅思, 旧念萌生,...
    九歌啊阅读 581评论 0 1
  • 其实我很想为我们写一个结局 最后落笔却只是你的名姓 梦里是你在说对不起 梦醒也是你的别离 火车像羌笛般尖裂嘶哑的悲...
    南国雪阅读 227评论 0 2
  • 竹篁深里杜声温, 斜倚梅坡柳色纯, 无赖凉风逗水痕。 满眸春,此外山河几度闻?
    青丘公子璟阅读 270评论 2 2
  • 手机内存已满,不得不删去很多照片。 此时,你会发现,原本以为十分珍贵不可舍弃的时光,在沉淀了很久后,无处存放。这时...
    尚巾木卯阅读 261评论 0 1