android文字轮播——ViewAnimator实现
来源:互联网 发布:程序员的自我修养目录 编辑:程序博客网 时间:2024/06/06 05:05
android文字轮播——ViewAnimator实现
类似图片轮播的功能,一般使用的时候都是使用自动的广告提示,或者通知提醒,比如淘宝app中的“淘宝头条”。现在就进行制作。
首先需要定义动画,包括文字进入和退出的效果。然后就是自动执行轮播。还是采用handler配合message的方式。下面是主要代码:
1、首先,布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.administrator.animator.MainActivity"> <Button android:id="@+id/btn_previous" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="上一个" /> <Button android:id="@+id/btn_auto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:text="自动播放" /> <Button android:id="@+id/btn_next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:text="下一个" /> <ViewAnimator android:id="@+id/animator" android:layout_width="match_parent" android:layout_height="200dp" android:layout_alignParentBottom="true" android:layout_marginBottom="10dp"> <TextView android:id="@+id/text1" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="欢迎" android:textColor="#f0f" android:textSize="80sp" /> <TextView android:id="@+id/text2" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="测试" android:textColor="#f0f" android:textSize="80sp" /> <TextView android:id="@+id/text3" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="本程序" android:textColor="#f0f" android:textSize="80sp" /> <TextView android:id="@+id/text4" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="!!!!!" android:textColor="#f0f" android:textSize="80sp" /> <TextView android:id="@+id/text5" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="hello,world" android:textColor="#f0f" android:textSize="80sp" /> </ViewAnimator></RelativeLayout>
2、然后需要四个动画效果:
slide_in_down.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromYDelta="100%" android:toYDelta="0"></translate></set>
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromYDelta="-100%" android:toYDelta="0"></translate></set>
slide_out_down.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromYDelta="0" android:toYDelta="100%"></translate></set>
slide_out_up.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromYDelta="0" android:toYDelta="-100%"></translate></set>
3、MainActivity.java
package com.example.administrator.animator;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ViewAnimator;public class MainActivity extends AppCompatActivity { private final String TAG = MainActivity.class.getSimpleName(); private final long TIME_INTERVAL = 4000L; private ViewAnimator viewAnimator; private Button buttonNext; private Button buttonPrevious; private Button buttonAuto; private boolean autoPlayFlag = false; Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(autoPlayFlag){ showNext(); } handler.sendMessageDelayed(new Message(),TIME_INTERVAL); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewAnimator = (ViewAnimator) this.findViewById(R.id.animator); buttonNext = (Button) this.findViewById(R.id.btn_next); buttonPrevious = (Button) this.findViewById(R.id.btn_previous); buttonAuto = (Button) this.findViewById(R.id.btn_auto); handler.sendMessageDelayed(new Message(),TIME_INTERVAL); buttonNext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showNext(); } }); buttonPrevious.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showPrevious(); } }); buttonAuto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { autoPlayFlag = true; } }); } public void showNext(){ viewAnimator.setOutAnimation(this,R.anim.slide_out_up); viewAnimator.setInAnimation(this,R.anim.slide_in_down); viewAnimator.showNext(); } public void showPrevious(){ viewAnimator.setOutAnimation(this,R.anim.slide_out_down); viewAnimator.setInAnimation(this,R.anim.slide_in_up); viewAnimator.showPrevious(); }}
运行效果:
说明一下,这个点击下一个会一次进行显示下一个。点击自动以后就能够自动播放了。文字轮播不像图片轮播,需要来回的切换,一般就直接进行显示就可以了。
0 0
- android文字轮播——ViewAnimator实现
- android 自定义ViewAnimator文字轮播广告控件——自定义控件学习(三)
- android实现图片+文字轮播(带文字)
- Android 文字轮播
- android带文字、可点击轮播的实现
- Android——PageView轮播实现
- jQuery实现文字轮播效果
- TextSwitcher实现文字轮播效果
- js实现文字无缝轮播
- Android轮播实现
- Android自定义控件实现多行文字自动向上滚动轮播效果(伪文字轮播)
- Android 无缝轮播实现——本地加载图片轮播(一)
- android实现能够左右滑动的轮播——轮播制作(三)
- Android——基于ViewPager的轮播完美实现
- 文字上下轮播
- js文字轮播
- Android自定义View--使用ViewAnimator实现一个提交按钮
- Android 实现图片轮播
- 16.Permutations II-带重复元素的排列(中等题)
- mysql sql优化<1>
- iOS开发:保持程序在后台长时间运行
- ViewPager+Fragment懒加载
- 探索了解SharePreferences存储
- android文字轮播——ViewAnimator实现
- js使用window.open打开窗口最大化
- Haar 特征训练步骤详
- .Floyd-Warshall算法——任意点对最短路算法
- 在OCR文字设别软件上该怎样自定义主窗口
- git 常用
- git clone github项目 https模式
- graylog日志收集(nxlog收集器配合使用)
- Javascript读书笔记(一)