转载请注明出处:王亟亟的大牛之路

周一好,又到了每周最困的一天。近期都被啮齿类动物搞的累死,废话不多,今天上一个自己定义的ViewGroup实现一个3D球形集合。

效果图:

效果还不错,能够作为短小文字内容的展示用


How to use?

Grade:

compile 'com.moxun:tagcloudlib:1.1.0'

Eclipse:

把这些代码Copy到自己的项目里去吧!

控件有几个自己定义标签共给大家设置,诸如转的速度啊,初始颜色结束颜色啊之类的。

  <declare-styleable name="TagCloudView"><attr name="autoScrollMode"><enum name="disable" value="0"/><enum name="decelerate" value="1"/><enum name="uniform" value="2"/></attr><attr name="radiusPercent" format="float"/><attr name="scrollSpeed" format="float"/><attr name="lightColor" format="color"/><attr name="darkColor" format="color"/></declare-styleable>

怎样填充数据?

首先你要写一个Adapter继承TagsAdapter 像这样
public class TextTagsAdapter extends TagsAdapter

TagsAdapter是作者自己定义的一个抽象。仅仅是为了好理解叫Adapter可是跟我们平时listview用的那一系列Adapter没啥关系

public abstract class TagsAdapter

作者写了一系列的抽象方法和一个监听数据变化的接口供给我们使用。

public abstract class TagsAdapter {private OnDataSetChangeListener onDataSetChangeListener;public abstract int getCount();public abstract View getView(Context context, int position, ViewGroup parent);public abstract Object getItem(int position);public abstract int getPopularity(int position);public abstract void onThemeColorChanged(View view,int themeColor);public final void notifyDataSetChanged() {onDataSetChangeListener.onChange();}protected interface OnDataSetChangeListener{void onChange();}protected void setOnDataSetChangeListener(OnDataSetChangeListener listener) {onDataSetChangeListener = listener;}
}

这边来说说他的视图操作,控件本身是不带有不论什么子视图的也就是。它本身是没有那些“NO.X”操作的,那么也就是说我们须要用代码加入那些控件,就在getView里操作

 public View getView(Context context, final int position, ViewGroup parent) 

样例中是这种

  @Overridepublic View getView(Context context, final int position, ViewGroup parent) {TextView tv = new TextView(context);ViewGroup.MarginLayoutParams lp = new ViewGroup.MarginLayoutParams(100, 100);tv.setLayoutParams(lp);tv.setText("No." + position);tv.setGravity(Gravity.CENTER);tv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Log.e("Click","Tag " + position + " clicked.");}});return tv;}

当然,控件也就能加入自身的Click操作。

其它方法,就是一些就是普通的设置和传參方法了。

源代码地址:https://github.com/misakuo/3dTagCloudAndroid/archive/master.zip

作者Git:https://github.com/misakuo/3dTagCloudAndroid

翻翻git之---炫酷的自己定义翻滚View TagCloudView相关推荐

  1. hexo的next主题个性化教程 打造炫酷网站

    看到有些next主题的网站很炫酷,那么是怎么配置的呢?接下来我会讲一讲如何实现一些炫酷的效果 主要有以下30种: 在右上角或者左上角实现fork me on github 添加RSS 添加动态背景 实 ...

  2. 来看看Python炫酷的颜色输出与进度条打印

    英语单词优化 上篇文章写到了Python开发英语单词记忆工具,其中依赖了bootstrap.css jQuery.js 基础html模块以及片段的css样式.有些朋友问,怎么能将这个练习题打包成单独的 ...

  3. macos 字体_巧用 iTerm2 zsh oh-my-zsh 打造炫酷的 MacOS 终端环境

    MacOS 系统自带的 Bash 虽然已经很强大,但是对于一些细节功能的支持并不完美,重点是对于一个颜控来说,原生 Bash 真的很丑--可塑性也不高.本文将使用 iTerm2 这款被各路大牛吹爆的 ...

  4. 哇噻,这个 IoT 物联网智能灯也太炫酷了吧!

    导语丨腾讯小哥哥亲自动手做了一个物联网智能灯,可以灵活调节亮度.色温,可用微信小程序远程控制,还可接入彩色模式.非常之拉风炫酷--所有软硬件设计全部开源,有兴趣的小伙伴也可以在此基础上改造属于你自己的 ...

  5. 将VS Code打造成炫酷全能IDE

    前言:你是服务端开发人员吗?你还在为调试Shell脚本而烦恼?你对Vim有独特情怀?你在追求极致性能而选择又爱又恨的C++么?同时,你还在"本地Push,远端Pull,一按Make,编不动& ...

  6. Android炫酷的3D球型标签云开源库 3dTagCloudAndroid 的使用

    Android炫酷的3D球形标签云开源库 3dTagCloudAndroid 的使用 文章目录 Android炫酷的3D球形标签云开源库 3dTagCloudAndroid 的使用 学习过程 使用体会 ...

  7. hexo的next主题个性化教程:打造炫酷网站

    转自 https://www.jianshu.com/p/f054333ac9e6 看到有些next主题的网站很炫酷,那么是怎么配置的呢?接下来我会讲一讲如何实现一些炫酷的效果 主要有以下32种: 在 ...

  8. python表白源代码加音乐_python炫酷烟花表白源代码

    天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花,工作之余也可以随时让程序为自己放一场烟花秀. python炫酷烟花表白源代码 这个有趣的小项目并不复 ...

  9. R语言搭建炫酷的线上博客系统

    本文转载自R语言中文社区,转载已获授权. 作者简介Introduction 徐静 硕士研究生.算法工程师 兴趣方向:统计机器学习,深度学习,模型的线上化部署.网络爬虫,前端可视化. 个人博客:http ...

  10. 【炫酷秀】仅用4行代码再现《黑客帝国》数字雨,可立即在终端实现!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 提到<黑客帝国>,字符雨可谓是让人印象深刻. 这种科技感爆棚的特效,你 ...

最新文章

  1. 代码居中对齐_一篇文章带你了解CSS对齐方式
  2. JS中调用本地Winform程序并传递参数
  3. 9个前端动画库让你的交互更加性感
  4. 关于idea修改当前使用的git账户的问题
  5. Unity动画系统详解10:子状态机是什么?
  6. flutter怎么手动刷新_Flutter 小技巧实现通用的局部刷新
  7. spring集成Quartz时区问题造成任务晚执行八小时
  8. 通过 Telnet 在 Linux 终端中观看ASCII 星球大战
  9. WinXP/2000/2003下如何重装TCP/IP协议
  10. 091 类的多态和多态性
  11. adc分辨率和精度的区别_STM32学习笔记—ADC采集数据常见问题
  12. vb查询mysql数据库实例_初识vb数据库开发之实例5(数据查询)
  13. AutoCAD2010 激活不了,老是激活错误(0015.111)
  14. 三维热传导matlab模拟,MATLAB编辑一维热传导方程的模拟程序(最新整理)
  15. CoolShell-第4题
  16. java文件拒绝访问权限_运行java文件,一直显示拒绝访问,谁知道哪里出了問題≥﹏≤...
  17. 计算机保存途径如何更改,如何修改“我的文档”路径方便保存文件
  18. C#实现QQ窗体的步骤和总结
  19. matlab 分段符号函数,Octave符号包中的分段函数?
  20. 智能网卡的网络加速技术

热门文章

  1. iOS 使用UIView的一种有效方法
  2. PHP无限极分类巧用引用生成树
  3. 网页内容爬取:如何提取正文内容
  4. [GO]删除切片的某个值
  5. Linux的xshell命令
  6. 5分钟正则表达式,了解一下!
  7. 一道经典JS题(关于this)
  8. nodejs gulp less编辑
  9. 用vs2012的命令利用xsd文件生成对应的C#类,把xml的string类型映射到生成的类
  10. Linux下连接SQL Server