安卓代码中获取dp值为控件设置宽高,获取dimen值

引言:
今天遇到一个问题,在自定义控件的时候,要求在代码中设置控件的宽高。本来自以为:对嘛,很简单,就是直接设置params

		//这样直接初始化的时候设置
        LayoutParams iconparams=new LayoutParams(size,size);
        //又或者这样
        iconparams.height=size;

然后问题就来了,比如你想要一个30dp的高度,就直接size=30,不就ok了????(建议你去试试)
问题:
在下已经试过了,图标太小了,我还以为是手机的问题。没错,就是手机的问题。所谓的dp这个单位与普通的int型变量区别还是蛮大的哦。控件显示在屏幕上的大小与手机像素密度有关,若以sp为单位,则会随像素不同改变控件大小。而dp是独立像素,所以运行在各种手机上都很稳定,故此深受喜爱。
说了这么多,问题所在就是,如何得到我们想要的那个size个dp对应的数值大小。
解决:
查阅了资料(www.百度一下,你就知道.com)才找到解决办法:
1.引入dimen:
dimen是位于value文件夹下的xml文件具有的标签属性,代表尺寸。使用时,先在res/values/下创建xml文件dimens。然后,便可以在里面编写dimen标签,并且定义大小。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="myActionBarSize">44dp</dimen>
    <dimen name="myNavImgSize">150dp</dimen>
    <dimen name="myIconSize">30dp</dimen>
</resources>

2.代码中获取dimens中的值:

int size=getResources().getDimensionPixelSize(R.dimen.myIconSize);

3.然后,然后就没了哦!

发布了51 篇原创文章 · 获赞 68 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/tran_sient/article/details/104146532