String:
<string name="btn_one_text">文字</string>
context.getResources().getString(R.string.btn_one_text);
setText可以直接使用id:setText(R.string.btn_one_text)
color:
<color name="colorWhite">#FFFFFF</color>
context.getResources().getString(R.color.colorWhite);//已经过时
代替方法:ContextCompat.getColor(context,R.color.colorWhite);
drawable:
context.getResources().getDrawable(R.mipmap.folder);//已经过时
代替方法:ContextCompat.getDrawable(context,R.mipmap.folder);
dimens:
<dimen name="item_spacing">45dp</dimen>
context.getResources().getDimensionPixelOffset(R.dimen.item_spacing);
context.getResources().getDimension(R.dimen.item_spacing);
context.getResources().getDimensionPixelSize(R.dimen.item_spacing);
相同点:
返回获取某个dimen的值,如果dimen单位是dp或sp,则需要将其乘以density(屏幕密度);如果单位是px,则不用。
不同点:
getDimension:返回类型为float,
getDimensionPixelSize:返回类型为int,由浮点型转成整型时,采用四舍五入原则。
getDimensionPixelOffset:返回类型为int,由浮点型转成整型时,原则是直接忽略小数点部分。
例如:
dimen=45dp,density=1.125;
getDimension=50.625
getDimensionPixelSize=51
getDimensionPixelOffset=50
dimen=45px,density=1.125;
getDimension=45.0
getDimensionPixelSize=45
getDimensionPixelOffset=45

本文深入探讨了在Android中访问各种资源的方法,包括String、Color、Drawable、Dimens等的正确调用方式,以及过时方法的替代方案。特别强调了在不同情况下使用getDimension、getDimensionPixelSize和getDimensionPixelOffset的区别。
328

被折叠的 条评论
为什么被折叠?



