quick-cocos2dx 截屏分享到 微信、微博等社交网络
最近做游戏要用截屏分享的功能,于是在quick群中问群友怎么实现。感谢网友@当往事遇上风 给我的截屏代码。
思路:
1、先用qiuck截图保存本地
2、用luaj调用android的分享api 分享到社交网络
下面是代码
function ShowView:shareButtonPressed()
self:screen()
local path = self:screen()
if device.platform == "android" then
-- Java 类的名称
local className = "com/szfore/xazc/Xazc"
-- 调用 Java 方法
luaj.callStaticMethod(className, "Share", '', '()V')
elseif device.platform == "ios" then
-- print('分享到ios')
end
end
--截屏代码 有一个咔嚓的动画
function ShowScene:screen()
local path = device.writablePath
local size = CCDirector:sharedDirector():getWinSize()
local screen = CCRenderTexture:create(size.width, size.height, 0)
local temp = CCDirector:sharedDirector():getRunningScene()
screen:begin()
temp:visit()
screen:endToLua()
local pathsave = path.."/share.jpg"
if screen:saveToFile('share.jpg', 0) == true then
print(pathsave)
end
local colorLayer1 = display.newColorLayer(ccc4(0, 0, 0, 125)):addTo(self)
colorLayer1:setAnchorPoint(ccp(0, 0))
colorLayer1:setPosition(ccp(0, display.height))
local colorLayer2 = display.newColorLayer(ccc4(0, 0, 0, 125)):addTo(self)
colorLayer2:setAnchorPoint(ccp(0, 0))
colorLayer2:setPosition(ccp(0, - display.height))
transition.moveTo(colorLayer1, {y = display.cy, time = 0.5})
self:performWithDelay(function ()
transition.moveTo(colorLayer1, {y = display.height, time = 0.3})
end, 0.5)
transition.moveTo(colorLayer2, {y = -display.cy, time = 0.5})
self:performWithDelay(function ()
transition.moveTo(colorLayer2, {y = -display.height, time = 0.3})
end, 0.5)
end
以上是quick中截屏并且保存到本地的代码 如果是android的系统的话 路径就是 /data/data/com.szfore.demo/files/share.jpg
这里只实现了android的分享, ios开发没弄过 不过 ios的分享应该是一样的原理 (好像ios的要用调用第三方的sdk才能进行分享没有android这样直接掉调用的api)
以上是android中的分享代码
就上面的代码就可以实现截屏分享到社交网络拉
浙公网安备 33010602011771号