setImageResource或setImageDrawable不显示图像

时间:2014-08-13 20:38:36

标签: java android layout

我试图在布局中设置图像资源/可绘制。但是,当我设置图像时,输出中没有显示图像,也没有看到错误。

    View rootView = inflater.inflate(R.layout.fragment_card_layout, container, false);
    LayoutInflater layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    cardView = layoutInflater.inflate(R.layout.recent_conversions_list, null);
    ListView listView = (ListView) rootView.findViewById(android.R.id.list);

    ...

    ImageView imageView = (ImageView) cardView.findViewById(R.id.unit_icon_ring);
    imageView.setImageResource(R.drawable.ic_angle_icon);

    ...

    return rootView;

值得指出的是,我正在设置图像资源的ImageView不包含在片段中使用的主要布局中。 R.layout.fragment_card_layout将R.layout.recent_conversions_list设置为listitem。

1 个答案:

答案 0 :(得分:0)

使用静态资源文件“R”包含对布局规范的引用,而不是对象。将R.layout.recent_conversions_list设置为listview的容器是不够的 - 它将构建它自己的副本。

您需要创建一个ArrayAdapater并为其中的每个项目设置图像:

http://geekswithblogs.net/bosuch/archive/2011/01/31/android---create-a-custom-multi-line-listview-bound-to-an.aspx

在你的情况下,ArrayAdapter应该包含这样的部分:

 ImageView imageView = (ImageView) convertView.findViewById(R.id.unit_icon_ring);
 imageView.setImageResource(R.drawable.ic_angle_icon);

或者如果您使用ViewHolder模型,那么您的ViewHolder对象应该使用viewHolder.setImage(R.drawable.ic_angle_icon)类型方法设置一些ImageView变量。