Android实现3D标签云效果

 更新时间:2021年06月23日 15:27:14   作者:MrZhao_PerfectCode  
这篇文章主要为大家详细介绍了Android实现3D标签云效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

最近业务需求,要求实现一个3D星球环绕效果,经过百般查找,终于找到了这个功能。

来先看看效果图:

首先还是添加第三方依赖库:

compile 'com.moxun:tagcloudlib:1.1.0' 

布局:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:app="http://schemas.android.com/apk/res-auto" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 tools:context="com.example.administrator.my3d_demo.MainActivity"> 
 
 <com.moxun.tagcloudlib.view.TagCloudView 
  android:id="@+id/tag_cloud" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:layout_margin="10dp" 
  app:autoScrollMode="uniform" 
  app:darkColor="#ff00ff00" 
  app:lightColor="#ffff0000" 
  app:radiusPercent="0.5" 
  app:scrollSpeed="3" /> 
 
</android.support.constraint.ConstraintLayout> 

MainActivity代码:

package com.example.administrator.my3d_demo; 
 
import android.graphics.Color; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
 
import com.moxun.tagcloudlib.view.TagCloudView; 
 
public class MainActivity extends AppCompatActivity { 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
 
  TagCloudView tagCloudView = (TagCloudView) findViewById(R.id.tag_cloud); 
  tagCloudView.setBackgroundColor(Color.LTGRAY); 
 
  TextTagsAdapter tagsAdapter = new TextTagsAdapter(new String[20]); 
  tagCloudView.setAdapter(tagsAdapter); 
 } 
} 

一个适配器代码:

package com.example.administrator.my3d_demo; 
 
import android.content.Context; 
import android.support.annotation.NonNull; 
import android.util.Log; 
import android.view.Gravity; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 
 
import com.moxun.tagcloudlib.view.TagsAdapter; 
 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 
import java.util.Random; 
 
public class TextTagsAdapter extends TagsAdapter { 
 
 private List<String> dataSet = new ArrayList<>(); 
 
 public TextTagsAdapter(@NonNull String... data) { 
  dataSet.clear(); 
  Collections.addAll(dataSet, data); 
 } 
 
 @Override 
 public int getCount() { 
  return dataSet.size(); 
 } 
 
 @Override 
 public View getView(final Context context, final int position, ViewGroup parent) { 
  String[] name = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}; 
  /*int[] name={R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher, 
    R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher, 
    R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher};*/ 
  Random rand = new Random(); 
  int randNum = rand.nextInt(9); 
 
  TextView tv = new TextView(context); 
  ViewGroup.MarginLayoutParams lp = new ViewGroup.MarginLayoutParams(100, 100); 
  tv.setLayoutParams(lp); 
  tv.setText("No." + name[randNum]); 
  tv.setGravity(Gravity.CENTER); 
  tv.setOnClickListener(new View.OnClickListener() { 
   @Override 
   public void onClick(View v) { 
    Log.e("Click", "Tag " + position + " clicked."); 
   } 
  }); 
  return tv; 
 } 
 
 @Override 
 public Object getItem(int position) { 
  return dataSet.get(position); 
 } 
 
 @Override 
 public int getPopularity(int position) { 
  return position % 7; 
 } 
 
 @Override 
 public void onThemeColorChanged(View view, int themeColor) { 
  ((TextView) view).setTextColor(themeColor); 
 } 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Kotlin中?和!!的区别详细对比

    Kotlin中?和!!的区别详细对比

    这篇文章主要给大家介绍了关于Kotlin中?和!!区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Android百度定位导航之基于百度地图移动获取位置和自动定位

    Android百度定位导航之基于百度地图移动获取位置和自动定位

    项目需求是这样的,首先定位我当前的起始位置,并跟随移动不断自动定位我的当前位置,下面通过本文给大家介绍android百度定位导航之基于百度地图移动获取位置和自动定位,需要的朋友参考下
    2016-01-01
  • 用MOB实例开发实现短信验证功能

    用MOB实例开发实现短信验证功能

    本篇文章通学习通过MOB平台开发APP实现简单的短信验证功能,对此有需求的朋友跟着好好学习下吧。
    2018-01-01
  • android仿爱奇艺加载动画实例

    android仿爱奇艺加载动画实例

    这篇文章主要介绍了android仿爱奇艺加载动画实例,小编觉得挺不错的,现在就分享给大家,也给大家做个参考。
    2016-10-10
  • Android apk无法安装及闪退问题解决办法

    Android apk无法安装及闪退问题解决办法

    这篇文章主要介绍了Android apk无法安装及闪退问题的相关资料,这里对闪退问题进行详解及解决步骤的详细介绍,需要的朋友可以参考下
    2017-07-07
  • Android账号注册实现点击获取验证码倒计时效果

    Android账号注册实现点击获取验证码倒计时效果

    这篇文章主要为大家详细介绍了Android账号注册过程中实现点击获取验证码倒计时效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Android实现闪屏效果

    Android实现闪屏效果

    这篇文章主要为大家详细介绍了Android实现闪屏效果,实现“一闪而过”效果进入页面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Android实现简单的文件下载与上传

    Android实现简单的文件下载与上传

    今天小编就为大家分享一篇关于Android实现简单的文件下载与上传,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • android Jsoup获取网站内容 android获取新闻标题实例

    android Jsoup获取网站内容 android获取新闻标题实例

    这篇文章主要为大家详细介绍了android Jsoup获取网站内容,android获取新闻标题实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android仿简书动态searchview搜索栏效果

    Android仿简书动态searchview搜索栏效果

    这篇文章主要为大家详细介绍了Android仿简书动态searchview效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论