Android项目笔记【项目管理统计图app】:使用github上的cardslib开源项目实现CardView(1)...

因为项目中用到第三级菜单,我们原有的界面框架已经不适用于该项目,Android L出了新的cardview设计,爬了下github发现有些高手已经把card整合为更方便调用的类库了,我这个项目就准备试用一下其中的一个开源项目cardslib      , 而github我也是初次使用,正好在项目中来熟悉使用方法

首先:

  cardslib项目地址:https://github.com/gabrielemariotti/cardslib,意大利的一位java/android工程师gabrielemariotti,基于Android L 的cardview做的一个便于引用和扩展的卡片式布局,可以fork一下到自己的代码仓库。

  我的项目中主要用到其中的library-corelibrary-cards,以下为作者提供的eclipse中引入该项目为类库的方法(不得不说国外开发牛实在是太贴心了T_T,文档写得尽善尽美,我这种初级菜鸟也能按部就班的实现):

Reference this project as a library in Eclipse

If you would like to use this library-core in Eclipse you have to do these steps:

  • clone a copy of this repository, or download it (outside eclipse workspace)
  • import the code in your workspace starting from library folder. The Wizard will import the code in library-core/src/main. I suggest you naming it "cardscore" (or another name) instead of "main".
  • mark java(*) folder as source (click on folder -> Build-Path -> use as source folder). You can also remove the src folder, from the project.
  • mark cardscore as Android Library (Properties -> Android -> Is library)
  • add support library v4 rel.21
  • add support cardview library v7 rel.21
  • add support annotation library rel.21
  • The library targets SDK 21 and works with minSdk=14. In any cases you need to use API>=21 to compile library (Properties -> Android)
  • Clean and build

If you would like to use this library-cards in Eclipse you have to do these steps:

  • clone a copy of this repository, or download it (outside eclipse workspace)
  • import the code in your workspace starting from library folder. The Wizard will import the code in library-cards/src/main. I suggest you naming it "cardscore" (or another name) instead of "main".
  • mark java(*) folder as source (click on folder -> Build-Path -> use as source folder). You can also remove the src folder, from the project.
  • mark cardscore as Android Library (Properties -> Android -> Is library)
  • add the cardscore as library
  • The library targets SDK 21 and works with minSdk=14. In any cases you need to use API>=21 to compile library (Properties -> Android)
  • Clean and build

注意要点:

1、需要anroid 21的SDK支持

2、把引用代码的main文件夹重命名,并右键build-path该文件夹为"use as source folder",否则可能会造成代码冲突

3、将工程作为Android Libaray,引入相应support  library

引用后,在build时和编译时分别出过一个问题:

1、build后,报错,Found 4 versions of android-support-v4.jar in the dependency list

查看了报错信息是因为之前引用的滑动菜单的几个library中,android-support-v4的版本和cardslib中所用版本不同。拷cardslib中的v4过去就行了

2、运行时报错,2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;

 应该是导入的包和以前的导入有冲突,解决办法简单粗暴:我把我的项目中libs文件夹下的包全部拷出来,然后重建这个文件夹,手动一个个拷进去检查,直到0 error为止(可能有些运行时要用的包没有拷到,以后运行时报错的时候再根据提示单独拷就可以了:)最后在stackoverflow找到原因,引用的library-core库中,新版本的support-v4包已经包含了support-annotations的内容,删去annotations包即可:

The problem is that android-support-annotations.jar used to be a separate library containing the android annotations, but for some reason these annotations are already included in recent versions of the android-support-v4.jar file.

转载于:https://www.cnblogs.com/melonrice/p/4103997.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卸载 流程_一款适合于windows端的卸载神器 彻底清理残留软件

今天给大家介绍的是一款适合于Windows端的软件卸载神器---Uninstall,可以彻底清理残留软件。它的卸载流程是这样的,首先会使用软件本身的默认卸载程序进行卸载,卸载完成后再次扫描软件残留的一些残余文件及注册表之类的,可以完美的…

key value vue 输出_vue注意事项总结(一)

1.只有当vue实例被创建时data中存在的属性才是响应式的:如果你知道你会在晚些时候需要一个属性,但是一开始它为空或不存在,那么你仅需要设置一些初始值。2.不要在选项属性或回调上使用箭头函数:比如:created: () > …

netif_start_queue/netif_wake_queue/netif_stop_queue

在网卡驱动中,内核为发送数据包的流量控制提供了几个主要的函数,用来在驱动程序和内核之间传递流控信息。 主要有4个: 1】netif_start_queue 启动接口传输队列 2】netif_wake_queue 通知网络系统可以再次开始传输数据包;并启动接…

编写下载服务器。 第四部分:有效地实现HEAD操作

HEAD是一个经常被遗忘的HTTP方法(动词),其行为类似于GET,但不会返回正文。 您使用HEAD来检查资源的存在(如果不存在,它应该返回404),并确保您的缓存中没有陈旧的版本。 在这种情况下…

【grunt整合版】30分钟学会使用grunt打包前端代码

http://www.itnose.net/detail/6009394.html转载于:https://www.cnblogs.com/zifeiyu/p/4106585.html

十三水算法php_基于PHP+Redis令牌桶限流

一 、场景描述在开发接口服务器的过程中,为了防止客户端对于接口的滥用,保护服务器的资源, 通常来说我们会对于服务器上的各种接口进行调用次数的限制。比如对于某个 用户,他在一个时间段(interval)内&…

ECSHOP如何增加红包序列号字符

ECSHOP系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字。如果当我们要发放大额度红包的时候,这样的序列号规 则难免给人不安全的感觉,万一有无聊的人,蒙几个红包序列号出来,那就亏大了,因为…

Java REST JAX-RS 2.0 –如何处理日期,时间和时间戳记数据类型

无论是X-Form-Urlencoded还是JSON HTTP发布到REST资源端点,对于与日期或时间相关的数据都没有特定的“数据类型”。 大多数开发人员会将这些数据发布为“字符串”,或者只是将它们转换为Unix时间戳值(例如1435061152)。 但是&#…

html中给div设置的属性怎么样才能拿得到_HTML与CSS结合的三种方式:优先级比较...

所谓实践出真知,只有自己动手去做了,才能得到正确的结论。首先我们看看三种结合方式:通过link标签引入外部css文件通过style标签通过style属性很长一段时间我受这个一段话影响:在html文件中,代码的执行顺序是从外到内&…

Quartz作业调度框架及时间表达式的含义和语法

Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。本系统结合通过 Spring 来集成 Quartz 。 Quartz 下载地址 &#x…

spring mvc mysql 实例_Spring+Mybatis+SpringMVC+Maven+MySql搭建实例

一、准备工作1. 首先创建一个表:CREATE TABLE t_user (USER_ID int(11) NOT NULL AUTO_INCREMENT,USER_NAME char(30) NOT NULL,USER_PASSWORD char(10) NOT NULL,USER_EMAIL char(30) NOT NULL,PRIMARY KEY (USER_ID),KEY IDX_NAME (USER_NAME)) ENGINEInnoDB AUTO…

LinkedHashMap 根据PUT顺序排序Map

最近工程里面报表需要合计 &#xff0c; 因为所有的项都是动态的&#xff0c;所以只能动态添加。 思路是使用Map&#xff0c;初始化所有Map&#xff0c;然后在Map中合计并且覆盖。 使用HashMap , 初始化后所有动态项的顺序都乱了。 Map<String , Double> totalMap new …

mysql 表设计 date_mysql 表 Date类型

举个例子给你吧&#xff0c;mysql的 datetime字段有表&#xff1a;CREATE TABLE u_user (id bigint(20) NOT NULL AUTO_INCREMENT,nickname varchar(32) DEFAULT NULL,addtime datetime DEFAULT NULL,PRIMARY KEY (id)) ENGINEInnoDB DEFAULT CHARSETutf8mb4;插入的话INSERT IN…

Oracle学习笔记(三)----------执行计划

查看Oracle执行计划的几种方法 一、通过PL/SQL Dev工具 1、直接File->New->Explain Plan Window&#xff0c;在窗口中执行sql可以查看计划结果。其中&#xff0c;Cost表示cpu的消耗&#xff0c;单位为n%&#xff0c;Cardinality表示执行的行数&#xff0c;等价Rows。 2、…

daocloud创建mysql_GitHub - DaoCloud/php-apache-mysql-sample

如何开发一个 PHP MySQL 的 Docker 化应用目标&#xff1a;基于典型的 LAMP 技术栈&#xff0c;用 Docker 镜像的方式搭建一个 Linux Apache MySQL PHP 的应用 。创建 PHP 应用容器因所有官方镜像均位于境外服务器&#xff0c;为了确保所有示例能正常运行&#xff0c;DaoCl…

HDU2795 Billboard

题目&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2795 1 #include<cstdio>2 #include<algorithm>3 using namespace std;4 #define lson l,m,rt<<15 #define rson m1,r,rt<<1|16 const int maxn 222222;7 int MAX[maxn << 2];8 int…

自动计算尺寸列表功能案例ios源码

源码HTKDynamicResizingCell&#xff0c;HTKDynamicResizingCell提供自动计算尺寸的TableViewCell/CollectionViewCel&#xff0c;只要设置了合适AutoLayout的约束。<ignore_js_op> 使用方法&#xff1a;使用CocoaPods添加&#xff1a; pod HTKDynamicResizingCell, ~>…

mysql存储过程返回多个值_数据库mysql存储过程之返回多个值的方法示例

本文实例讲述了mysql存储过程之返回多个值的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;mysql存储函数只返回一个值。要开发返回多个值的存储过程&#xff0c;需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的结构&#xff1a;mysql> de…

休眠NONSTRICT_READ_WRITE CacheConcurrencyStrategy如何工作

介绍 在我以前的文章中 &#xff0c;我介绍了READ_ONLY CacheConcurrencyStrategy &#xff0c;这是不可变实体图的显而易见的选择。 当缓存的数据可变时&#xff0c;我们需要使用读写缓存策略&#xff0c;本文将介绍NONSTRICT_READ_WRITE二级缓存的工作方式。 内部运作 提交H…

mysql用大白话解释_Java基础--2021Java面试题系列教程--大白话解读

前言序言再高大上的框架&#xff0c;也需要扎实的基础才能玩转&#xff0c;高频面试问题更是基础中的高频实战要点。适合阅读人群Java 学习者和爱好者&#xff0c;有一定工作经验的技术人&#xff0c;准面试官等。阅读建议本教程是系列教程&#xff0c;包含 Java 基础&#xff…