如何创建将在Android中的多个屏幕上运行的视图?

时间:2011-07-21 12:06:20

标签: android imageview

我正在开发一个Android应用程序。我正在以编程方式创建视图,这对于此应用程序来说是必要的,因为它应该是动态的。我可以根据hdpi,mdpi和ldpi放置资源,但我想知道如何设置视图的宽度和高度,以便它在所有Android屏幕上看起来都正常。目前我正在使用密度因子如下。

ImageView imgMainPic = new ImageView(this);
RelativeLayout.LayoutParams rllpImg =
  new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT,
                                  (int)(440*Global.nDensity));
rllpImg.addRule(RelativeLayout.ALIGN_TOP,mainRelativeLyt.getId());
imgMainPic.setId(1);
imgMainPic.setLayoutParams(rllpImg);        
imgMainPic.setBackgroundResource(R.drawable.pic1);      
mainRelativeLyt.addView(imgMainPic);  

2 个答案:

答案 0 :(得分:0)

根据设备计算视图的宽度和高度不是一个好习惯。最好的方法是使用small,large,xlarge等为不同的屏幕定义不同的布局。以下是关于支持多种屏幕尺寸的link到Android开发人员..

答案 1 :(得分:0)

尝试使用WRAP_CONTENT作为高度

RelativeLayout.LayoutParams rllpImg =   new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);