您的位置:首页 > 编程语言 > Java开发

开源项目cardslib简单介绍和导入eclipse并运行的方法

2014-05-08 19:08 405 查看
开源项目里有两个关于Crad类型的自定义view,一个是cards-ui-android,另一个就是本文的cardslibcardslib的下载地址

关于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,并进行一些优化处理。希望大家多多支持
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: