android 自定义ViewAnimator文字轮播广告控件——自定义控件学习(三)

经过上一篇文章自定义图片轮播,应该能够感受到自定义控件的好处了。下面在做一个ViewAnimator实现文字轮播广告的控件。直接上货: 1、主要的ViewAnimatorWordComponent.java
package com.example.administrator.wordanimationcomponent;import android.content.Context;import android.os.Handler;import android.os.Message;import android.text.GetChars;import android.util.AttributeSet;import android.view.ViewGroup;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.ViewAnimator;/** * Created by Administrator on 2016-09-26. */public class ViewAnimatorWordComponent extends RelativeLayout {    private ViewAnimator viewAnimator;    private final int MSG_CODE = 0x667;    private final int TIMER_INTERVAL = 3000;    private String[] strings;    public void setStrings(String[] strings) {        this.strings = strings;        if(strings != null){            for (int i = 0; i < strings.length; i++) {                TextView textView = new TextView(getContext());                textView.setText(strings[i]);                //任意设置你的文字样式,在这里                textView.setTextColor(getResources().getColor(android.R.color.holo_purple));                textView.setTextSize(30);                viewAnimator.addView(textView,i);            }        }    }    public ViewAnimatorWordComponent(Context context, AttributeSet attrs) {        super(context, attrs);        viewAnimator = new ViewAnimator(getContext());        viewAnimator.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));        addView(viewAnimator);        Message message = handler.obtainMessage(MSG_CODE);        handler.sendMessageDelayed(message,TIMER_INTERVAL);    }    private Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            if(msg.what == MSG_CODE){                viewAnimator.setOutAnimation(getContext(),R.anim.slide_out_up);                viewAnimator.setInAnimation(getContext(),R.anim.slide_in_down);                viewAnimator.showNext();                Message message = handler.obtainMessage(MSG_CODE);                handler.sendMessageDelayed(message,TIMER_INTERVAL);            }        }    };}

2、需要使用的资源:

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

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

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

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

3、调用,布局文件:
<?xml version="1.0" encoding="utf-8"?>        

4、调用,MainActivity.java
package com.example.administrator.wordanimationcomponent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {    private ViewAnimatorWordComponent viewAnimatorWordComponent;    private String[] strings = new String[]{            "如果你真想得到一些知识",            "最好过滤一下你的信息",            "否则你只是在别人的思考中",            "得意着——《暗时间》"    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        viewAnimatorWordComponent = (ViewAnimatorWordComponent)this.findViewById(R.id.wordAnimator);        viewAnimatorWordComponent.setStrings(strings);    }}

5、下面是运行结果:

最后,附上源码:点我下载,不要你的积分哦!!!

更多相关文章

  1. Android(安卓)DeepLink
  2. Android基本组件介绍和生命周期
  3. android fih-mms的实现
  4. Android(安卓)RecyclerView +SnapHelper 实现横向滚动自动滚动到
  5. Android调用第三方app(Scheme隐式以及显示调用)
  6. android 异常情况下的onSaveInatanceState()与onRestoreIntanceS
  7. 程序分析:Android漏洞挖掘技术
  8. Android拍照流程
  9. Android(安卓)开发之serviceManager分析

随机推荐

  1. 中国Android应用商店汇总
  2. android 状态栏移动到底部
  3. 一个简单、漂亮、功能强大的Android日志
  4. android UI之去掉状态栏
  5. Android中调用摄像头拍照保存,并在相册中
  6. android中 JIN编译报错
  7. Android中的全屏
  8. Android的System Server
  9. android版本兼容问题总结
  10. Android能够获取到唯一的设备ID吗?