`
yajie
  • 浏览: 211755 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java实现标签云

 
阅读更多

Java实现标签云

博客的标签云功能实现已经很久了,但是只有标签功能,没有云的功能,囧!~~~

标签云主要有以下几点重要的 功能:

能根据标签下面文章的多少来决定标签的显示样式的大小

标签云能实现随机颜色

这样标签云就能云起来了,每个标签的字体大小根据数量来决定,数量越多的字体越大,最小的数量也使用12px字体,这样看起来不会太累,颜色直接随机好了

01 public void tag_cloud(Map<String, Integer> tags) {
02 int maxsize = 38 ; //最大字体大小
03 int minsize = 12 ;
04 List<Integer> list2 = CollectionUtils.toList(tags); //这里是我自己的内库实现的map转换为list
05 int maxval = CollectionUtils.max(list2); //获取标签下文章数量的最大值
06 int minval = CollectionUtils.min(list2); //获取最小值
07 int spread = maxval - minval;
08 int step= 1 ;
09 if (spread!= 0 )
10 step = (maxsize - minsize) / spread;
11 String[] color = new String[] { "#FF0000" , "#FFCC00" , "#FF9900" ,
12         "#0099FF" , "#999999" };
13 Iterator<String> it = tags.keySet().iterator();
14 while (it.hasNext()) {
15 String key = it.next();
16 int val = tags.get(key);
17 int index = RandomUtil.nextInt( 0 , color.length - 1 ); //产生0到数组长度的随机数字,来实现随机颜色
18 int size = Math.round(minsize + ((val - minval) * step));
19 System.out.println( "<a href=\"#\" style=\"font-size:" +size+ "px;color:" +color[index]+ "\">" +key+ "</a>" );
20 }
21 }

使用方法:

01 Map<String, Integer> tags= new HashMap<String, Integer>();
02 tags.put( "java" , 20 );
03 tags.put( "ruby" , 2 );
04 tags.put( "groovy" , 4 );
05 tags.put( "php" , 11 );
06 tags.put( "scala" , 2 );
07 tags.put( "js" , 8 );
08 tags.put( "jquery" , 16 );
09 tags.put( "struts" , 20 );
10 tags.put( "c" , 20 );
11 tags.put( "sql" , 10 );
12 tag_cloud(tags);

原理基本上就这样了。。。,一个简单的标签云功能就出来了,说实话找遍百度和google都没有java 实现标签云的相关文章....最后还是根据一php哥们的思想转换为JAVA的,可惜忘了那兄弟的出处了,再次感谢下这为未知的哥们的无私贡献

上面的代码是我修改过的只是为了更好的演示tags的功能,大家可以修改成自己的POJO 来代替泛型 中的String..

0
2
分享到:
评论
6 楼 泛黄秋颜 2016-09-01  
大神你好,我最近在做云显示,奈何就是不会,能不能麻烦您发我一份源码呢?定将万分感谢
2501915837@qq.com
5 楼 Zhang_amao 2016-06-02  
我的QQ邮箱1101232017@qq.com
4 楼 Zhang_amao 2016-06-02  
您好, 我现在也在研究这一领域,特别需要java版本来生成中文的标签云,能给一份源码吗??将非常感谢
3 楼 mjj 2012-05-07  
兄弟能否抄我一份623333581@qq.com
共进取
2 楼 czg18596 2011-12-14  
老兄你好,能给一下你的源代码吗?谢谢,120940002@qq.com
1 楼 lfsy0 2011-12-05  
你好 ,看到你这个蛮有意思的,能给我源代码吗,1913798942@qq.com

相关推荐

    java开发标签云

    在这个Java开发的项目中,我们关注的是如何利用Java编程语言来实现一个动态、交互式的标签云。 Java是一种广泛使用的面向对象的编程语言,具有跨平台的特性,适合开发各种类型的应用程序,包括Web应用。在创建标签...

    java制作标签云图与界面展示

    #### 三、使用Java实现标签云 在本案例中,作者最初尝试使用AWT来实现标签云,但最终选择了SWT作为主要工具。SWT(Standard Widget Toolkit)是一种专为Java开发的跨平台GUI库,能够提供更丰富的图形界面支持和更...

    Android标签云效果

    在提供的压缩包中,"JavaApk源码说明.txt"可能是对源代码的简要介绍,它可能包含了实现标签云效果的具体代码逻辑和注意事项。"千万别双击.url"则可能是一个链接,提示用户不要直接打开,而是应该参考源码或在IDE中...

    安卓3D标签云卡片热门相关-android项目中的标签控件用于实现热门标签的功能.rar

    在Android中,自定义视图可以满足开发者对界面组件的个性化需求,例如在这个案例中,它可能实现了标签云的3D旋转效果。自定义视图通常会重写`onDraw()`方法来完成自定义的绘制逻辑,并可能包含触摸事件处理,比如...

    有人透传云-云交换机-java 端模板.zip

    标签“有人云 java”进一步强调了这个模板是针对有人云平台,并且是用Java语言实现的。这表明开发者可以使用Java进行编程,利用该模板与有人云平台进行API调用,进行设备管理和数据交互。 在压缩包的文件名称列表中...

    java利用oss实现下载功能

    Java是当前最流行的编程语言之一,而 OSS(Object Storage Service)是阿里云提供的一种对象存储服务,通过使用Java和OSS可以实现下载功能。本文将详细介绍如何使用Java和OSS实现下载功能。 Java下载功能的实现有...

    四、JAVA调用海康威视SDK实现摄像头内网推流到阿里云

    在本项目中,我们主要探讨如何使用JAVA编程语言调用海康威视(Hikvision)的SDK,以便实现摄像头的内网预览功能,并将视频流推送到阿里云服务。这一过程涉及到多个技术栈,包括后端开发、网络通信以及云端服务的集成...

    Java实现网络摄像头,视频的变化

    本篇将深入探讨如何利用Java实现网络摄像头的监控,并进行图像变化采集。 首先,我们需要了解Java Media Framework (JMF)。JMF是Java平台上的多媒体处理框架,它允许开发者捕获、播放、处理音频和视频流。在这个...

    JS制作TAG标签云文字动画特效.zip

    在这个"JS制作TAG标签云文字动画特效"项目中,我们主要探讨如何利用JS实现一种常见的网页元素——标签云,并为其添加动态效果。 标签云是网站上常见的一种展示关键词或标签的方式,它以不同大小的字体显示各个标签...

    标签云支持中文

    这些文件可能是一个专门针对中文标签云的Flash组件,包含了实现中文支持的代码和配置,开发者可以将这个组件集成到自己的项目中,快速实现具有中文支持的标签云功能。 总之,【标签云支持中文】是现代互联网应用不...

    安卓3D标签云卡片热门相关-Android标签云效果CloudTagCloudTags.zip

    为了实现动态效果,开发者可能使用了`ObjectAnimator`或者`ValueAnimator`来实现标签的平滑移动和旋转动画。 "千万别双击.url"可能是一个指向示例应用的链接,提醒用户不要直接点击打开,而是需要通过导入到Android...

    android 标签云的实现

    在本教程中,我们将探讨如何在Android应用中实现一个基础的标签云功能,类似天天动听的搜索或手机市场的搜索功能。 首先,我们需要创建一个`Tag`类来存储每个标签的信息,包括文字和对应的权重。权重将决定标签在...

    基于Java实现wps在线编辑、在线预览后台服务.zip

    "基于Java实现wps在线编辑、在线预览后台服务"这个标题指出,我们将探讨一个使用Java编程语言构建的系统,该系统能够支持WPS文档的在线编辑和预览功能。这意味着该服务可能是一个Web应用程序,它允许用户在浏览器中...

    炫的3D标签云的效果,类似于各种播放器首页的字体悬浮效果

    1. **Android源码**:这表明实现这种3D标签云效果可能涉及到Android平台的开发,需要对Android SDK、Java编程语言以及Android系统架构有一定的理解。开发者可能需要使用自定义View或者第三方库来实现这种特效。 2. ...

    JAVA RFID 开发API

    - **安全认证**:利用RFID进行身份验证,结合Java实现更复杂的安全机制。 #### 三、Sun Java System RFID Software 3.0 1. **核心组件**: - **API接口**:提供了一系列用于读取、写入RFID标签以及处理数据的...

    myDemo_JAVA实现在线语音分析_语音转文字

    从【标签】"JAVA实现在线语音分析 语音转文字"可以推断,整个系统是用Java语言编写的,这表明开发者可能使用了Java丰富的库和框架,如JavaFX或Swing进行GUI界面设计,使用Spring Boot构建服务端,以及使用如OpenJFX...

    java经典项目源码百度云.zip

    下面,我们将深入探讨这些标签所涵盖的知识点,并结合可能包含的文件"java经典项目源码百度云.txt"进行解析。 首先,让我们聚焦于"Java"这个标签。Java是一种面向对象的、跨平台的编程语言,它的设计目标是“一次...

    东北大学 基础实训设计 javaswing图形化界面 云工厂

    在本实训设计中,我们将深入探讨Java Swing图形化界面在实现“云工厂”项目中的应用。Java Swing是Java Standard Edition (Java SE) 部分的一部分,它提供了一组丰富的组件库,用于创建桌面应用程序的用户界面。这次...

    安卓3D标签云卡片热门相关-AndroidTagGroup实现云标签效果.zip

    【AndroidTagGroup实现3D标签云卡片效果】 在Android应用开发中,为了提供用户友好的交互体验,有时候我们需要展示大量的标签信息,而传统的线性布局可能会显得拥挤不堪。此时,3D标签云卡片效果就应运而生。这种...

    安卓3D标签云卡片热门相关-标签云词云.zip

    3. "TagCloud" - 这可能是一个Java或Kotlin类,实现了3D标签云的基本逻辑,包括标签的生成、布局计算、3D渲染等关键功能。 为了利用这些资源,开发者需要具备一定的安卓开发基础,了解Java或Kotlin编程,同时对3D...

Global site tag (gtag.js) - Google Analytics