1

我正在动态创建一个线性布局并向其添加一些图像视图和文本视图。

代码

ScrollView sv = new ScrollView(this);

LinearLayout llay = new LinearLayout(this);

for(int i =0;i<ns;i++){
    TextView tv = new TextView(this);
    ImageView iv = new ImageView(this);
    iv.setLayoutParams(new LinearLayout.LayoutParams(100,100,50));

    llay.addView(tv);
    llay.addView(iv);
}

在运行应用程序时

第一个设备:图像视图大小合适。

第二台设备:图像视图太小。

有什么办法,我可以明确设置图像视图的大小,使其变得独立于设备?

4

2 回答 2

2

尝试这个....

如果您的应用程序的 diff 大小密度使用显示高度/宽度而不是固定值。

Display display = getWindowManager().getDefaultDisplay();
      int height = display.getHeight()/10;
      int width = display.getWidth()/5;

ScrollView sv = new ScrollView(this);

LinearLayout llay = new LinearLayout(this);

for(int i =0;i<ns;i++){
    TextView tv = new TextView(this);
    ImageView iv = new ImageView(this);
    iv.setLayoutParams(new LinearLayout.LayoutParams(width,height,0));

    llay.addView(tv);
    llay.addView(iv);
}
于 2012-09-03T11:22:56.890 回答
1

建议使用 dp 而不是 px。

有关 dp 与 px 的更多信息,您可以访问支持多个屏幕

在您的情况下,您以像素为单位设置值。如果要使用 dp ,可以使用以下命令:

float x = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 100, getResources().getDisplayMetrics());
于 2012-09-02T08:41:06.453 回答