Android,3D 라벨 클 라 우 드 단순 효과 구현

6202 단어 Android라벨 구름
본 논문 의 사례 는 안 드 로 이 드 가 3D 태그 클 라 우 드 효 과 를 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
1.3D 태그 구름
TagCloudView 는 완전히 Android View Group 을 기반 으로 작 성 된 컨트롤 로 View 를 3D 태그 클 라 우 드 로 표시 하고 모든 방향 으로 스크롤 하 는 것 을 지원 합 니 다.
GitHub 의링크 주소
(1)효과
페이지 에 있 는 탭 의 데 이 터 는 스스로 정의 할 수 있 고 데이터 페이지 는 미 끄 러 지 며 선택 할 수 있 습 니 다.
b1
(2)Android Studio 에서 사용
1.build.gradle 에 추가
compile ‘com.moxun:tagcloudlib:1.0.3'
2.레이아웃 파일 에 도입
3.Adapter 계승 TagsAdapter 를 설정 하여 다음 과 같은 방법 을 실현 합 니 다.
(1)public int getCount();
태그 개수 되 돌리 기
(2)public View getView(Context context, int position, ViewGroup parent);
모든 태그 인 스 턴 스 를 되 돌려 줍 니 다.
(3)public Object getItem(int position);
태그 데이터 되 돌리 기
(4)public int getPopularity(int position);
태그 마다 값 을 되 돌려 줍 니 다.하지만 어떤 역할 을 합 니까?
4.라벨 클 라 우 드 대상 의 속성 설정

2.간단 한 사용 예시
(1)레이아웃 파일 activitymain.xml 디자인

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

 <com.moxun.tagcloudlib.view.TagCloudView
  android:id="@+id/tcv_tags"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  app:autoScrollMode="uniform"
  app:radiusPercent="0.8" />

</RelativeLayout>
(2)라벨 구름 속 의 글꼴 레이아웃 디자인

<?xml version="1.0" encoding="utf-8"?>

<!--            -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="   "
 android:textColor="@color/textcolor_tags"
  />
(3)디자인 글꼴 의 색상 선택 기
(res 폴 더 아래 color 폴 더 만 들 기,textcolor 만 들 기tags.xml)

<?xml version="1.0" encoding="utf-8"?>

<!--               -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:color="#f0f" android:state_selected="true" />
 <item android:color="#000" android:state_selected="false" />
</selector>
(4)어댑터 클래스 만 들 기

package com.lwz.cloud;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.moxun.tagcloudlib.view.TagsAdapter;

import java.util.List;


/**
 *            
 */

public class CursorTagsAdapter extends TagsAdapter {


 private List<String> mList;

 public CursorTagsAdapter( List<String> list) {
  this.mList = list;
 }

 @Override
 public int getCount() {
  return mList.size();
 }

 @Override
 public View getView(Context context, int position, ViewGroup parent) {
  TextView tv = (TextView) View.inflate(context, R.layout.item_tag, null);
  tv.setText(getItem(position));
  return tv;
 }

 @Override
 public String getItem(int position) {
  return mList.get(position);
 }

 @Override
 public int getPopularity(int position) {
  return 1;
 }

 @Override
 public void onThemeColorChanged(View view, int themeColor) {

 }
}
(5)주요 방법 호출 클래스

package com.lwz.cloud;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import com.moxun.tagcloudlib.view.TagCloudView;

import java.util.ArrayList;
import java.util.List;

/**
 *           
 */
public class MainActivity extends AppCompatActivity implements TagCloudView.OnTagClickListener {
 TagCloudView tcvTags;//     
 List<String> list = new ArrayList<>();//        
 List<String> listClick = new ArrayList<>();//             

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //       
  for (int i = 0; i < 20; i++) {
   list.add("    " + i);
  }

  tcvTags = (TagCloudView) findViewById(R.id.tcv_tags);
  //          
  tcvTags.setOnTagClickListener(this);
  //         
  CursorTagsAdapter adapter = new CursorTagsAdapter(list);
  tcvTags.setAdapter(adapter);
 }

 /**
  *           
  */
 @Override
 public void onItemClick(ViewGroup parent, View view, int position) {
  view.setSelected(!view.isSelected());//         
  if (view.isSelected()) {
   //    
   listClick.add(list.get(position));
  } else {
   //    
   listClick.remove(list.get(position));
  }
  Toast.makeText(this, "      :" + listClick.toString(), Toast.LENGTH_SHORT).show();
 }
}
프로그램 실행 후 인터페이스:
g1
탭 몇 개 를 누 르 면 표시 되 는 인터페이스:
g2
이것 이 바로 라벨 클 라 우 드 의 간단 한 예 이다.이 탭 클 라 우 드 는 기본적으로 고 른 속도 로 굴 러 갑 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기