0

嗨,当我尝试使用此代码从 gridview 中的 imageurl 中复制图像时,它显示空指针异常,任何人都可以帮助我:我的代码是

public class Gridview extends Activity {


public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gridview);

    GridView gridview = (GridView) findViewById(R.id.gridview);   
    gridview.setAdapter(new ImageAdapter(this));
   }
public class ImageAdapter extends BaseAdapter{


    private Context mContext;
    private Integer[] mThumbIds;
    public ImageAdapter(Context c)
    {
        mContext = c;     
    }
public int getCount() {
    return mThumbIds.length;
}
public Object getItem(int position) {
    return position;
}
public long getItemId(int position) {
    return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null) {
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(45, 45));
        imageView.setAdjustViewBounds(false);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8);
    } else {
        imageView = (ImageView) convertView;
    }
    imageView
            .setImageDrawable(LoadImageFromWebOperations("http://tmcrmappsqa.inservices.tatamotors.com/cordys/Images/mobile.png"+position));
    return imageView;
}
protected Drawable LoadImageFromWebOperations(String url) {
    try {
        InputStream is = (InputStream) new URL(url).getContent();
        Drawable d = Drawable.createFromStream(is, "src name");
        return d;
    } catch (Exception e) {
        System.exit(0);
        return null;
    }
}

}    
4

2 回答 2

0

你应该检查 url,+position 会导致错误的 url:

imageView.setImageDrawable(LoadImageFromWebOperations("http://tmcrmappsqa.inservices.tatamotors.com/cordys/Images/mobile.png"+position));

于 2012-10-11T12:32:55.017 回答
0

嘿检查你的图片下载网址。你为什么将位置附加到该网址?如果你有很多图片,比如 mobile1、mobile2 等,那么你应该在 mobile 之后而不是 url 之后附加位置。

最重要的是,您不能像现在这样在主 UI 线程上进行网络操作。它可能适用于 GingerBread 和 Pre-GingerBread 设备,但不适用于后来的 GingerBread 设备。

只需参考此链接并以这种方式进行即可。

于 2012-10-11T12:27:57.500 回答