以编程方式设置imageView宽度时为空指针

时间:2012-11-30 08:28:48

标签: android imageview width layout-inflater

我正在膨胀xml,我从这个xml创建视图。我需要修改图像的宽度,但是我得到一个NullPointerException。

我的代码是:

for (int o = 0; o < study.size(); o++) {
     LayoutInflater li_est= (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    final View vEst = li_est.inflate(R.layout.study_details, null);

 line = (ImageView)findViewById(R.id.img_line);

 if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE) {
      **// HERE NEED CHANGE WIDTH OF LINE BUT I GET THE EXCEPTION**
}

我试图通过以下方式这样做:

 1.     line.getLayoutParams().width = 20;
 2.     line.setMaxWidth(20);
 3.     line.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

我认为问题来自通货膨胀,任何解决方案,谢谢你,我为我糟糕的英语道歉。

2 个答案:

答案 0 :(得分:2)

 final View vEst = li_est.inflate(R.layout.study_details, null);
 line = (ImageView)vEst.findViewById(R.id.img_line);

可能在stud _ details布局中声明了line,所以你需要vEst对象来检索它

答案 1 :(得分:1)

你必须在膨胀的视图上执行findViewById()...所以这样做:

final View vEst = li_est.inflate(R.layout.study_details,null); line =(ImageView) vEst .findViewById(R.id.img_line);