滚动播放文字或者图片信息效果

简介: 源码地址    package com.example.shifteffect;import com.app.plugs.effect.EffectUtil;import com.app.plugs.effect.view.EffectView;import com.example.scrolleffect.R;import android.os.Bundle;imp


源码地址   

package com.example.shifteffect;

import com.app.plugs.effect.EffectUtil;
import com.app.plugs.effect.view.EffectView;
import com.example.scrolleffect.R;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;

public class MainActivity extends Activity implements OnItemSelectedListener {

	// 展示渐变动效的容器,用于容纳渐变效果库的View控件
	private LinearLayout container;
	
	// 渐变效果库的View控件类
	private EffectView mView;
	
	// 文字资源(用于展示渐变切换)
	private String[] mTexts = { "今日新闻1", "今日新闻2", "今日新闻3" };
	
	// 图片资源(用于展示渐变切换)
	private int[] mImages = { R.drawable.image_1, R.drawable.image_2, R.drawable.image_3 };

	// 内容选项
	private Spinner sp1;
	private ArrayAdapter<String> aa1;
	private String[] menu1 = { "内容:文字", "内容:图片" };

	// 渐变时间选项
	private Spinner sp2;
	private ArrayAdapter<String> aa2;
	private String[] menu2 = { "动时:300ms", "动时:1000ms", "动时:3000ms" };

	// 渐变间隔选项
	private Spinner sp3;
	private ArrayAdapter<String> aa3;
	private String[] menu3 = { "停时:3000ms", "停时:5000ms", "停时:10000ms" };

	// 渐变效果选项
	private Spinner sp4;
	private ArrayAdapter<String> aa4;
	private String[] menu4 = { "动效:向上", "动效:向下", "动效:向左", "动效:向右", "动效:旋转",
			"动效:大小", "动效:渐变" };

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// 初始化展示动效的容器
		container = (LinearLayout) this.findViewById(R.id.container);

		// 初始化各个选项的内容
		sp1 = (Spinner) findViewById(R.id.spinner1);
		aa1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, menu1);
		aa1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		sp1.setAdapter(aa1);
		sp1.setOnItemSelectedListener(this);

		sp2 = (Spinner) findViewById(R.id.spinner2);
		aa2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, menu2);
		aa2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		sp2.setAdapter(aa2);
		sp2.setOnItemSelectedListener(this);

		sp3 = (Spinner) findViewById(R.id.spinner3);
		aa3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, menu3);
		aa3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		sp3.setAdapter(aa3);
		sp3.setOnItemSelectedListener(this);

		sp4 = (Spinner) findViewById(R.id.spinner4);
		aa4 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, menu4);
		aa4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		sp4.setAdapter(aa4);
		sp4.setOnItemSelectedListener(this);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

	@Override
	public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
		// 内容选项逻辑(可选择滚动文字或者图片)
		if (parent.getAdapter() == aa1) {
			container.removeAllViews();
			switch (position) {
				case 0:
					// 初始化文字切换View对象
					mView = EffectUtil.fillTexts(this, EffectView.ANI_UP, 30, mTexts);
					container.addView(mView);
					mView.start();
					break;
				default:
					mView = EffectUtil.fillImages(this, EffectView.ANI_UP, mImages);
					container.addView(mView);
					mView.start();
					break;
			}
		}
		// 渐变时间选项逻辑
		if (parent.getAdapter() == aa2) {
			switch (position) {
				case 0:
					mView.setDuration(300);
					break;
				case 1:
					mView.setDuration(1000);
					break;
				default:
					mView.setDuration(3000);
					break;
			}
		}
		// 渐变间隔选项逻辑
		if (parent.getAdapter() == aa3) {
			switch (position) {
				case 0:
					mView.setInterval(3000);
					break;
				case 1:
					mView.setInterval(5000);
					break;
				default:
					mView.setInterval(10000);
					break;
			}
		}
		// 渐变效果选项
		if (parent.getAdapter() == aa4) {
			switch (position) {
				case 0:
					mView.setAnimation(EffectView.ANI_UP); // 往上滚动
					break;
				case 1:
					mView.setAnimation(EffectView.ANI_DOWN); // 往下滚动
					break;
				case 2:
					mView.setAnimation(EffectView.ANI_LEFT); // 往左滚动
					break;
				case 3:
					mView.setAnimation(EffectView.ANI_RIGHT); // 往右滚动
					break;
				case 4:
					mView.setAnimation(EffectView.ANI_ROTATE); // 旋转渐变
					break;
				case 5:
					mView.setAnimation(EffectView.ANI_SCALE); // 大小渐变
					break;
				default:
					mView.setAnimation(EffectView.ANI_FADE); // 消失渐变
					break;
			}
		}
	}

	@Override
	public void onNothingSelected(AdapterView<?> parent) {
		// TODO Auto-generated method stub

	}
}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:padding="10dip"
	android:layout_width="fill_parent" 
	android:layout_height="fill_parent">

	<Spinner android:id="@+id/spinner1" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content" />
	
	<Spinner android:id="@+id/spinner2" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content" />
	
	<Spinner android:id="@+id/spinner3" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content" />
	
	<Spinner android:id="@+id/spinner4" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content" />

	<LinearLayout android:id="@+id/container"
		android:layout_width="fill_parent" 
		android:layout_height="fill_parent"
		android:layout_weight="1" 
		android:gravity="center" />

</LinearLayout>














目录
相关文章
|
IDE 小程序 API
【社区每周】IDE性能分析工具即将上线;多项数字化产品支持沙箱调试(1月第三期)
【社区每周】IDE性能分析工具即将上线;多项数字化产品支持沙箱调试(1月第三期)
131 0
|
存储 SQL JSON
超硬核的MongoDB基础讲解。《记得收藏,不然看着看着就找不到了》
超硬核的MongoDB基础讲解。《记得收藏,不然看着看着就找不到了》
391 0
超硬核的MongoDB基础讲解。《记得收藏,不然看着看着就找不到了》
修改北京定点医院&amp;查询医保信息
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/50606441 未经博主允许不得转载。 博主地址是:http://blog.csdn.net/freewebsys 1,修改定点医院 因为刚毕业的时候选择的医院,没有选择对。 前几天去看感冒,发现不是定点医院,于是要修改下。 但是找不到网站地址
1581 0
|
C++ 缓存
careercup-递归和动态规划 9.11
9.11 给定一个布尔表达式,由0、1、&、|和^等符号组成,以及一个想要的布尔结果result,实现一个函数,算出有几种括号的放法可使该表达式得出result值。 解法: 跟其他递归问题一样,此题的关键在于找出问题与子问题之间的关系。
758 0
|
5天前
|
弹性计算 人工智能 安全
云上十五年——「弹性计算十五周年」系列客户故事(第二期)
阿里云弹性计算十五年深耕,以第九代ECS g9i实例引领算力革新。携手海尔三翼鸟、小鹏汽车、微帧科技等企业,实现性能跃升与成本优化,赋能AI、物联网、智能驾驶等前沿场景,共绘云端增长新图景。
|
11天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
2天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI