首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >LinearLayout.LayoutParams如何使用dip...?

LinearLayout.LayoutParams如何使用dip...?
EN

Stack Overflow用户
提问于 2011-05-19 06:53:12
回答 3查看 19.2K关注 0票数 17

我正在尝试将我的LinearLayout的高度设置为45 dip。

如何在扩展LinearLayout时执行此操作

现在我就这么做了:LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 45);

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-19 07:16:03

解决这类问题的最好方法是在values下创建一个dimens.xml文件,并将dip值放入其中,然后在代码中从该文件中提取尺寸。这就是资源的用途,对吧?=)

下面是一个dimens.xml的示例

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="about_image_bottom">0dp</dimen>
</resources>

这就是你如何在代码中把它拉出来:

代码语言:javascript
复制
RelativeLayout.LayoutParams iv_params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
iv_params.setMargins(0, 0, 0, (int) getResources().getDimension(R.dimen.about_image_bottom));

然后将参数设置为所需的任何对象,在我的示例中设置为ImageView iv:

代码语言:javascript
复制
iv.setLayoutParams(iv_params);
票数 48
EN

Stack Overflow用户

发布于 2011-05-19 07:01:07

您可以使用DisplayMatrics并确定屏幕密度。如下所示:

代码语言:javascript
复制
int pixelsValue = 5; // margin in pixels
float d = context.getResources().getDisplayMetrics().density;
int margin = (int)(pixelsValue * d);

希望对您有帮助^^

票数 16
EN

Stack Overflow用户

发布于 2011-05-19 07:00:25

也许最好的方法是在XML中指定它。用您为扩展LinearLayout标记中的LinearLayout而创建的任何类替换普通的XML标记:

代码语言:javascript
复制
<com.example.MyLinearLayout 
              xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent" 
              android:layout_height="45dp" 
              android:orientation="vertical" >
 ....

有关详细信息,请参阅here

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6051930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档