使用android.support.v8.renderscript制作的特效

https://github.com/daimajia/AndroidViewHover


这事github上一个中国程序员做的一个特效,中国程序员高手还是挺牛的(不过牛逼的都跑国外去了,国内留不住)。

这个小demo里面使用到的是Android支持库——RenderScript。支持这个jar包的目录在\sdk\build-tools\里面,(我是找了好一会才找到这个,android.support.v8.renderscript不得不说自己还是个菜鸟啊~很多东西不懂,不过我有种精神不错,懂得怎么去思考,怎么去解决问题,嘻嘻自我表扬一下)

怀着对大牛的崇拜,我下载了这个项目,然后在eclipse里新建拷入代码,测试。结果发现问题不少……

首先需要添加上面网址下方提供的jar包下载地址,有nineoldandroid、androidEas..、androidview..、还有个androidviewhover,不过最后一个我没添加到项目里,因为我拷贝的代码是直接用下载的项目里的library的源代码文件,这个androidviewhover只不过是library打包之后的,虽然说编译class更快吧,但是我目前是没用这个jar包测试成功的,而且看下别人怎么写这个jar代码的。如果添加了会报Multiple dex的错误,意思就是jar包或者类重复了,导致出现了multiple大量的错误,作为一个经验丰富的菜鸟,我马上意识到了我问题所在并且解决了,嘻嘻。

最后是添加support-v7的项目库文件,这一步有是不顺利,由于这个demo里的activity继承的是ActionBarActivity,而这个类在v7的jar包里,但是add library库文件之后却还是不能找到,出现个错误:

摘抄一下:

The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved.

今天在使用低版本下的ActionBar,在继承ActionBarActivity时报了“The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved. It is indirectly referenced from required .class files”错误,网上查了很久终于解决了。

问题根源:因为在复制项目的jar包时,把Eclipse下自带的android-support-v4.jar包复制到了‘android-support-v7-appcompat’ Library项目下,替换掉了原本的android-support-v4.jar,而Eclipse自带的版本较低,导致报错。

解决方案:当然把android-support-v4.jar替换成..\sdk\extras\android\support\v7\appcompat\libs下的android-support-v4.jar的啦。

PS:一时疏忽,导致很多时间都在查找解决报错问题,在此记录一下。



我按照上面的方法结果还真给我解决了,我把v7库项目文件里面的v4、v7jar包都remove,然后都add到自己项目来,最后clean下,不报错了。由于这个demo比较特殊,使用了很多git上面的其他开源的,我只想说牛人都是会整合资源代码拿来为我所用,然后升级的高手啊!有用到com.makeramen.RoundImageView,还有com.squareup.picasso.Transformation这个类,我是佩服的五体投地了!知道真相的我眼泪哗哗的流下来了……


最后顺利完成了这个demo的测试运行!


ps:忘记写个重要的,使用renderscript还需要

1. 在你需要使用RenderScript的类中,导入RenderScript图形库包:android.support.v8.renderscript 。如果你你已经有了内置的RnederScript(例如你用的是Android 4.3版本),你需要把导入包从android.renderscript改为android.support.v8.renderscript

import android.support.v8.renderscript.*;

2. 在你的project.properties里,确保你的目标代码是android-18,并加入下列代码:

renderscript.target=18
renderscript.support.mode=true
sdk.buildtools=18.1.0

这就可以了!通过RenderScript支持库,你能够继续在app开发中使用原生的RenderScript包(有一些小小的例外情况,下面会提到),并且你还能在你自己的脚本中使用RenderScript工具链的最新特性。

For complete details on how to set up the RenderScript Support Library, see Accessing RenderScript Java APIs.


你可能感兴趣的:(使用android.support.v8.renderscript制作的特效)