我想支持小屏幕和大屏幕
我的布局中有一个图像视图 - 在小屏幕中,它需要布局高度为“wrap_content”
并且在大屏幕中它需要400dp(包装内容太小)
而不是创建另一个布局,我想创建一个维度
<dimen name="layout_height">wrap_content</dimen>
<dimen name="layout_height">400dp</dimen>
并将它们分配到正确的文件夹 并在我的imageview写
layout_height=@dimen/layout_height
这是否可行,而不创建另一种布局?
答案 0 :(得分:12)
要从dimens.xml文件中创建这些项所需的资源中分配wrap_content或match_parent:
JOptionPane optionPane = new JOptionPane("thank you for using java",JOptionPane.WARNING_MESSAGE);
JDialog dialog = optionPane.createDialog("Warning!");
dialog.setAlwaysOnTop(true); // to show top of all other application
dialog.setVisible(true); // to visible the dialog
然后你就可以这样简单地使用它:
<item name="match_parent" format="integer" type="dimen">-1</item>
<item name="wrap_content" format="integer" type="dimen">-2</item>
答案 1 :(得分:8)
对于小屏幕和大屏幕,您可以使用不同的style
,覆盖layout_height
属性。很遗憾,您无法在wrap_content
dimen
答案 2 :(得分:1)
方法1 - 以编程方式执行:
第1步。将以下内容添加到onCreate()
的{{1}}中:
Activity
第2步。函数ImageView i = (ImageView)findViewById(R.id.myimageview);
int screenSize = getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK;
switch(screenSize) {
case Configuration.SCREENLAYOUT_SIZE_LARGE:
i.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,dpi(400)));
break;
case Configuration.SCREENLAYOUT_SIZE_NORMAL:
i.setLayoutParams(new ImageView.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));
break;
case Configuration.SCREENLAYOUT_SIZE_SMALL:
i.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));
break;
}
的定义如下:
dpi()
注意:请确保您未在XML布局中为此private int dpi(int i) {
int value = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, i,
getResources().getDisplayMetrics());
return value;
}
设置android:layout_height
和android:layout_width
。
方法2 - 完成XML:
在ImageView
目录中,制作两个文件夹/res
和layout-small
。在这两个文件夹中,放置相同的XML布局文件,并在layout-large
文件夹中的XML文件和android:layout_width="wrap_content"
文件夹中的XML文件中layout-small
手动设置android:layout_height="400dp"
。现有的layout-large
文件夹将包含layout
大小屏幕的XML布局。
<强>参考文献:强>
答案 3 :(得分:0)
您可以同时使用layout_height和minHeight。 对于小屏幕,将minHeight设置为0dp,但是对于大屏幕,将其设置为400dp。 始终将layout_height设置为warp_content。
我认为这将适合您的情况。