void HelloWorld::downloadPicture()
{
HttpRequest *request = new HttpRequest();
request->setRequestType(HttpRequest::Type::GET);
request->setTag("downLoad tag 1");
request->setUrl("http://ss.bdimg.com/static/superman/img/logo/bd_logo1_31bdc765.png");
request->setResponseCallback(CC_CALLBACK_2(HelloWorld::onDownloadComplete, this));
HttpClient::getInstance()->sendImmediate(request);
request->release();
}
void HelloWorld::onDownloadComplete(HttpClient *sender, HttpResponse *response)
{
if (response != nullptr)
{
if (response->isSucceed())
{
std::string fileName = FileUtils::getInstance()->getWritablePath() + std::string("baidu_logo.png");
std::vector<char>* data = response->getResponseData();
std::string buffer(data->begin(),data->end());
FILE* fp = fopen(fileName.c_str(), "wb");
fwrite(buffer.c_str(), 1, buffer.size(), fp);
fclose(fp);
// 加载图片资源
Image* image = new Image();
image->initWithImageFile(fileName);
if (image != nullptr)
{
Texture2D* texture = new cocos2d::Texture2D();
bool isImage = texture->initWithImage(image);
if (isImage)
{
Sprite* downloadSp = Sprite::createWithTexture(texture);
const Size& size = Director::getInstance()->getWinSize();
downloadSp->setPosition(size.width * 0.5f, size.height * 0.5f);
addChild(downloadSp);
}
image->release();
texture->release();
}
}
else
{
CCLOG("error %s",response->getErrorBuffer());
}
}
}
cocos2d-x 下载图片
最新推荐文章于 2018-01-04 16:43:33 发布