安卓代码中获取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.然后,然后就没了哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tran_sient

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值