自定义信息提示条tooltipbar
来源:互联网 发布:免费网络骚扰电话软件 编辑:程序博客网 时间:2024/05/18 02:10
最近在公司忙的焦头烂额,做一些自己的控件,千奇百怪的,现在拿出一部分分享给大家。
信息提示条,可以用来显示一些文本信息,并通过服务器端传递的一些json串,解析过之后循环显示出来,通过每一次点击textview以动画的形式跳到另一个textview上并显示出来,循环往复。
不多说了,直接上代码,有注释,无须解释。
package com.example.atooltipbar;import java.util.ArrayList;import java.util.List;import java.util.Random;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import android.content.Context;import android.util.AttributeSet;import android.view.Gravity;import android.view.View;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.view.animation.AnimationSet;import android.view.animation.ScaleAnimation;import android.widget.TextView;/** * @author xiaochj * @Date 2014-6-2 上午10:45:33 * @version */public class Tooltipbar extends TextView { private AnimationSet mset = null;// 淡入淡出对象 private Animation mscale = null;// 伸缩对象 private int index = 0; public static List<String> list = new ArrayList<String>();// 存储的数据 public Tooltipbar(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public Tooltipbar(Context context, AttributeSet attrs) { super(context, attrs); } public Tooltipbar(Context context) { super(context); this.setGravity(Gravity.CENTER); this.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listGet();// 循环改变文本内容 animationFor();// 动画效果 } }); } /** * 循环改变文本内容 */ public void listGet() { if (list.size() == 0) {// 如果没有文本,则循环显示默认文本 return; } else { setText(list.get(index));// 从list中取元素显示出来 index++; if (index == list.size()) {// 循环显示内容 index = 0; } } } /** * 动画效果 */ public void animationFor() { // 每点击一次,产生一个随机数,将数控制在10以内,通过判断来决定做哪种动画效果 Random rad = new Random(); int k = rad.nextInt(); int j = Math.abs(k % 10); if (j == 1 || j == 3 || j == 5 || j == 7 || j == 9) { mset = new AnimationSet(true); // 淡入 AlphaAnimation malpha1 = new AlphaAnimation(0, 1); malpha1.setDuration(3000);// 3s mset.addAnimation(malpha1); startAnimation(mset); } else { // 伸缩 mscale = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); mscale.setDuration(3000);// 3s startAnimation(mscale); } } /** * 设置默认显示文本 * @param value */ public void setOrigainText(String value){ this.setText(value); } /** * 从数据源取到数据,存到list中使用 * * @param value */ public void setFromSource(String value) { try { JSONObject jsonObject = new JSONObject(value); JSONArray jsonArray = jsonObject.optJSONArray("select"); if(jsonArray==null) { return; } for (int i = 0; i < jsonArray.length(); i++) { JSONObject data = (JSONObject) jsonArray.opt(i); list.add(data.getString("value"));// 加入数据 } } catch (JSONException e) { e.printStackTrace(); } }}
使用类如下:
package com.example.atooltipbar;import android.app.Activity;import android.os.Bundle;import android.widget.LinearLayout;public class MainActivity extends Activity { private LinearLayout layout; private Tooltipbar mTooltipbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); layout = new LinearLayout(this); setContentView(layout); initTooltipbar(); } /** * 生成一个滚动条 */ public void initTooltipbar() { mTooltipbar = new Tooltipbar(this); mTooltipbar.setOrigainText("hello,world!");//默认显示文本信息 //循环显示文本 mTooltipbar.setFromSource("{select:[{value:abc},{value:efg},{value:hiii},{value:jklm}]}"); mTooltipbar.setTextSize(30); layout.addView(mTooltipbar); }}
第一次写博客,望多指教,不喜勿喷,呵呵~
该工程下载地址:http://download.csdn.net/download/sword_cx/7490245
0 0
- 自定义信息提示条tooltipbar
- 几条提示信息
- Uploadify自定义提示信息
- Uploadify自定义提示信息
- android 自定义信息提示框
- 自定义 title 提示信息框
- 自定义Dialog之信息提示
- jNotify:操作结果信息提示条
- [CToolTipCtrl]悬停工具提示条信息
- MFC 给自定义工具栏添加提示信息
- 自定义控件实现提示信息类
- [ios] alertview自定义提示信息【转】
- ToolTipController 信息提示自定义内容和风格
- jqGrid 自定义 无数据提示信息
- 自定义必填文本框的提示信息
- easyui 自定义验证,动态设置提示信息
- Android 自定义PopupWindow 显示提示帮助信息
- Android 自定义PopupWindow 显示提示帮助信息
- openCV 形态学图像处理
- C++ 顺序栈(类模板实现)
- 今晚可以不想你吗
- 实验二:算法基本功和综合思考
- 百度定位+地图,半径加当前经纬度画圆
- 自定义信息提示条tooltipbar
- 在中国,你们真觉得房子是盖给老百姓们居住用的吗?
- acm~矩阵类中运算符的重载
- 用ICE开发分布式程序
- ubuntu小技巧
- 设计模式C++实现——状态模式
- 爱要经受多少痛苦?才能不离不弃
- 基于Thrift WebService实现的JavaSe项目
- 通讯录管理系统设计