我正在尝试将我的LinearLayout
的高度设置为45 dip。
如何在扩展LinearLayout
时执行此操作
现在我就这么做了:LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 45);
发布于 2011-05-19 07:16:03
解决这类问题的最好方法是在values下创建一个dimens.xml
文件,并将dip值放入其中,然后在代码中从该文件中提取尺寸。这就是资源的用途,对吧?=)
下面是一个dimens.xml
的示例
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="about_image_bottom">0dp</dimen>
</resources>
这就是你如何在代码中把它拉出来:
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:
iv.setLayoutParams(iv_params);
发布于 2011-05-19 07:01:07
您可以使用DisplayMatrics
并确定屏幕密度。如下所示:
int pixelsValue = 5; // margin in pixels
float d = context.getResources().getDisplayMetrics().density;
int margin = (int)(pixelsValue * d);
希望对您有帮助^^
发布于 2011-05-19 07:00:25
也许最好的方法是在XML中指定它。用您为扩展LinearLayout标记中的LinearLayout而创建的任何类替换普通的XML标记:
<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。
https://stackoverflow.com/questions/6051930
复制相似问题