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

https://github.com/daimajia/AndroidViewHover
html


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

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

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

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

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

摘抄一下:api

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

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

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

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

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



我按照上面的方法结果还真给我解决了,我把v7库项目文件里面的v四、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.