欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android XML——获取xml中string,color,dimens,drawable等资源文件中的值

程序员文章站 2024-02-18 12:48:34
...

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