开源项目里有两个关于Crad类型的自定义view,一个是cards-ui-android,另一个就是本文的cardslib。cardslib的下载地址
关于cards-ui-android的介绍,请看我之前的一篇文章:酷炫开源项目cardsui-for-android-超详细源码分析,详解所用特效是如何实现的
接下来开始介绍cardslib开源项目:
先来一张效果图
这个开源项目很大,里面有各种各样的card自定义视图。功能很全面而且效果很赞,所以我准备将cardslib中的一些实用功能和效果结合到之前一篇文章提过的开源项目cardsui-for-android中。
但由于cardslib的作者是用Android Studio写的,所以他的导入方法和正常的导入方法不一样,下面我来介绍一下正确的导入方式:
1.首先下载之后解压缩,在eclipse点击import导入android项目
2.完成第一步后会选择你要导入的文件,这里选择下面打勾的两个,一个是例子程序,一个lib包。(另外两个看名字很清楚,是额外的例子程序和lib包,这个额外的会多一个grid效果,需要单独导入另一个开源项目StaggeredGridView,这里就不介绍如何导入了,有问题可以看我另一篇文章android引入开源项目方法,和解决android-support-v4.jar冲突问题)
3.导入成功后如下图,会报错误先不用管。这里推荐给两个文件重新命名一下,随便改什么都行,主要是防止以后导入别的项目的时候重名。我是将main修改成cardslib,MainActivity修改成cardslibSample
4.如图,接下来配置cardslib。鼠标右键点击java文件夹—>Build Path—>use as source folder
5.右键点击cardslib—>Properties—>Android—>在Is Library打上勾,将这个项目标记为library
6.clean一下,看看是否有错误,如果有错误就看看SDK版本是什么,如果低于16的话就换成高于16的。最好是选19也就是4.4版本的。这样就不会出问题了,导入其他开源项目也会遇到这种问题,应该就是作者的target SDK版本的原因。
7.接下来到cardslibSample,这里仿照第4步,将aidl和java文件都加入到BuildPath中
8.将library包加入到工程中,cardslibSample—>Properties—>Android—>add—>选择刚才标记为library的cardslib
9.同第6步,查看SDK版本,改成16以上
10.在cardslibSample下建一个文件夹,名叫lib。将android-supprt-v4包复制进去,然后加入到BuildPath中。不会的可以参考这个文章android引入开源项目方法,和解决android-support-v4.jar冲突问题
11.clean一下,这回应该就没错误了
之后就可以运行他了。哈哈怎么样,是不是坑爹的报了一个nullpointerececption。。。。
找到报错的代码块
// ---------------------------------------------------------------
// ...
String base64EncodedPublicKey= IabUtil.key;
// compute your public key and store it in base64EncodedPublicKey
mHelper = new IabHelper(this, base64EncodedPublicKey);
mHelper.enableDebugLogging(true);
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
// Oh noes, there was a problem.
Log.d(TAG, "Problem setting up In-app Billing: " + result);
}
// Have we been disposed of in the meantime? If so, quit.
if (mHelper == null) return;
// Hooray, IAB is fully set up!
IabUtil.getInstance().retrieveData(mHelper);
}
});
//-----------------------------------------------------------------
怎么样,高端大气的代码,完全看不懂。所以直接注释掉。。。。
之后就可以运行了,效果特别的好,而且各种布局,各种样式特别的全,如果你仔细的看源码的话,发现作者的框架写的也非常牛。
还特意的去google一下作者gabriele mariotti,真的是大神级人物。。。
下一篇文章准备将cardslib中的一些实用功能结合到cardsui-for-android,并进行一些优化处理。希望大家多多支持