某些设备上ImageView显示黑色背景问题

4

我有一个包含图片的ListView(每行一个),每个图像的宽度为match_parent,高度约为宽度的0.4。

现在一切正常,除了在大屏设备上(如Nexus 7...),我看到黑色背景而不是图片。

这是我的ListView适配器:

public class Adapter extends ArrayAdapter<String>{
    int width = 0;

    private final Activity context;
    private final String[] title;
    private final int[] img;

    public PlansAdapter(Activity context,
                        String[] title, int[] img) {
        super(context, R.layout.listsingle, title);
        this.context = context;
        this.title = title;
        this.img = img;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = context.getLayoutInflater();
        convertView = inflater.inflate(R.layout.listsingle, null, true);
        TextView Title = (TextView) convertView.findViewById(R.id.text);
        Title.setText(title[position]);
        ImageView Img = (ImageView) convertView.findViewById(R.id.img);
        Img.setImageResource(img[position]);
        width = ((Activity) getContext()).getWindowManager().getDefaultDisplay().getWidth();
        double a = (double) 44/96;

        Img.getLayoutParams().height = (int) (a*width);

        RelativeLayout bghover = (RelativeLayout )convertView.findViewById(R.id.bghover);
        bghover.getLayoutParams().height = (int) (a*width);


        return convertView;
    }
}

在接下来的活动中,我使用相同的代码并看到了图片。
width = getWindowManager().getDefaultDisplay().getWidth();
double a = (double) 44/96;
Img.getLayoutParams().height = (int) (a*width);

我认为设备内存不足以显示所有的图片。
以下是logcat:

eglSurfaceAttrib未实现

由于没有窗口焦点而丢弃事件:KeyEvent { action = ACTION_DOWN, keyCode = KEYCODE_ALT_RIGHT,scanCode = 100, metaState = META_ALT_ON | META_ALT_RIGHT_ON,flags = 0x8,repeatCount = 497, eventTime = 242910,downTime = 216396,deviceId = 1,source = 0x301 }

由于没有窗口焦点而丢弃事件:KeyEvent { action = ACTION_DOWN, keyCode = KEYCODE_ALT_RIGHT,scanCode = 100, metaState = META_ALT_ON | META_ALT_RIGHT_ON,flags = 0x8,repeatCount = 498, eventTime = 242960,downTime = 216396,deviceId = 1,source = 0x301 }

GC_FOR_ALLOC释放了1461K,空闲内存8%,总共18275K / 19844K,暂停6ms,总计6ms


尝试将此行更改为 convertView = inflater.inflate(R.layout.listsingle, parent, false);,而不是 convertView = inflater.inflate(R.layout.listsingle, null, true); - Anggrayudi H
@AnggrayudiH 一样的事情,依然是黑色背景。 - Hadi
1个回答

0

我认为设备的内存已经用完或者类似这样的情况。 我已经将照片加载到后台,现在一切都正常了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接