Android在自定义对话框中更改imageview的背景不起作用

时间:2012-07-12 11:30:47

标签: android dialog imageview

这是我的代码:

private void setWeatherDialogInfoAndIcons(){
    WeatherGoogle weather = WeatherGoogle.getInstance("istanbul");
    String iconsPath = Environment.getExternalStorageDirectory().getAbsolutePath()+"/arla/images/hava/";
    String[] allData = weather.getCityData().split("<>");

    currentImage = (ImageView) customDialog.findViewById(R.id.imageViewcurrentWeatherImage );
    currentInfo  = (TextView) customDialog.findViewById( R.id.textViewCurrentInfo )  ;
    currentInfo.setText( allData[0] +"\n"+allData[1]+"\n"+allData[2]+"\n"+allData[3] );

    currentImage.setBackgroundResource(R.drawable.air);
    currentImage.setBackgroundDrawable( UiHelper.getDrawableFromSdcard(iconsPath + weather.getIconName(0)) );

    int j = 4;
    for (int i = 0; i < dayInfos.size() ; i++) {
        dayInfos.get(i).setText( allData[j] +"\nMin  : "+ allData[j+1] +"\nMaks: "+ allData[j+2] 
                + "\n" + allData[j+3]   );
        j+=4;
    }

}

我可以更改textview的文本,但是当我想设置imageviev(currentImage)的背景时它不起作用,它会显示对话框,但 Imageview 中没有背景。

 currentImage.setBackgroundDrawable( UiHelper.getDrawableFromSdcard(iconsPath + weather.getIconName(0)) );

我确信我的方法 getDrawableFromSdcard 有效,因为我在我的代码中的其他位置使用它,最后我检查了png图标及其路径。那可能是什么问题呢?

2 个答案:

答案 0 :(得分:0)

currentImage.setBackgroundDrawable(getResources.getDrawable(R.drawable.air));

来自SDcard:

Bitmap picture = BitmapFactory.decodeFile("file_path");
imageView.setImageBitmap(picture);

试试吧。祝你好运!

答案 1 :(得分:-1)

不推荐使用方法setBackgroundDrawable(Drawable background)。您必须使用setBackground(Drawable)。请参阅reference